Apache Tomcat adalah server aplikasi open-source yang mendukung teknologi Java Servlet, JavaServer Pages, Java Expression Language, dan Java WebSocket. Ini adalah salah satu aplikasi dan server web yang paling banyak digunakan di dunia saat ini.
Tutorial ini akan menunjukkan cara menginstal Apache Tomcat 9.0 di Debian 9 dan mengkonfigurasi antarmuka manajemen web Tomcat.
Prasyarat #
Sebelum melanjutkan tutorial ini, pastikan Anda masuk sebagai pengguna dengan hak istimewa sudo.
Kami akan mengunduh file zip Tomcat menggunakan wget. Jika Anda tidak memiliki wget
diinstal pada sistem Anda, Anda dapat melakukannya dengan mengetik:
sudo apt install wget
Menginstal OpenJDK #
Tomcat 9.0 membutuhkan Java SE 8 atau lebih baru. Untuk menginstal paket OpenJDK default dari repositori Debian 9, jalankan perintah berikut:
sudo apt install default-jdk
Membuat pengguna Tomcat #
Menjalankan Tomcat sebagai pengguna root adalah risiko keamanan dan tidak disarankan.
Buat pengguna dan grup sistem baru dengan direktori home /opt/tomcat
dengan menjalankan perintah berikut:
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Pengguna ini akan digunakan untuk menjalankan layanan Tomcat.
Mengunduh Tomcat #
Kami akan mengunduh versi terbaru Tomcat 9.0.x dari halaman unduhan Tomcat.
Pada saat penulisan, versi Tomcat terbaru adalah 9.0.27. Sebelum melanjutkan ke langkah berikutnya, Anda harus memeriksa halaman unduhan Tomcat 9 untuk melihat apakah versi yang lebih baru tersedia.
Ubah ke /tmp
direktori dan unduh file zip dengan wget
:
cd /tmp
wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz
Setelah unduhan selesai, ekstrak file tar:
tar -xf apache-tomcat-9.0.27.tar.gz
Pindahkan file sumber Tomcat ke /opt/tomcat
direktori:
sudo mv apache-tomcat-9.0.27 /opt/tomcat/
Tomcat 9 sering diperbarui. Untuk memiliki kontrol lebih besar atas versi dan pembaruan, buat tautan simbolis yang disebut latest
, yang menunjuk ke direktori instalasi Tomcat:
sudo ln -s /opt/tomcat/apache-tomcat-9.0.27 /opt/tomcat/latest
Nanti, saat memutakhirkan versi Tomcat, Anda cukup membongkar versi yang lebih baru dan mengubah symlink agar mengarah ke versi terbaru.
Ubah kepemilikan /opt/tomcat
direktori ke pengguna dan grup tomcat
sehingga pengguna dapat memiliki akses ke instalasi Tomcat:
sudo chown -R tomcat: /opt/tomcat
juga buat skrip di dalam bin
direktori yang dapat dieksekusi:
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
Buat file unit systemd #
Buat tomcat.service
baru file unit di /etc/systemd/system/
direktori dengan isi sebagai berikut:
[Unit]
Description=Tomcat 9.0 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/default-java"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
Beri tahu systemd bahwa kami membuat file unit baru dan memulai layanan Tomcat dengan menjalankan:
sudo systemctl daemon-reload
sudo systemctl start tomcat
Periksa status layanan Tomcat dengan mengetik:
sudo systemctl status tomcat
● tomcat.service - Tomcat 9 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2018-12-01 20:47:50 UTC; 4s ago
Process: 1759 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 1767 (java)
CGroup: /system.slice/tomcat.service
Jika tidak ada kesalahan, Anda dapat mengaktifkan layanan Tomcat untuk dimulai secara otomatis saat boot:
sudo systemctl enable tomcat
Anda dapat memulai, menghentikan, dan memulai ulang Tomcat sama seperti layanan unit sistem lainnya:
sudo systemctl start tomcat
sudo systemctl stop tomcat
sudo systemctl restart tomcat
Sesuaikan Firewall #
Jika firewall Anda berjalan di sistem Debian dan Anda ingin mengakses antarmuka Tomcat dari luar jaringan lokal Anda, Anda harus membuka port 8080
:
sudo ufw allow 8080/tcp
Biasanya, saat menjalankan aplikasi Tomcat di lingkungan produksi, aplikasi tersebut berada di belakang penyeimbang beban atau proxy terbalik. Ini adalah praktik terbaik untuk membatasi akses ke port 8080
hanya untuk jaringan internal Anda. Konfigurasi Antarmuka Manajemen Web Tomcat #
Sekarang setelah Tomcat terinstal di server Debian Anda, langkah selanjutnya adalah membuat pengguna dengan akses ke antarmuka manajemen web.
Pengguna Tomcat dan perannya didefinisikan dalam tomcat-users.xml
berkas.
Jika Anda membuka file, Anda akan melihat bahwa file tersebut dipenuhi dengan komentar dan contoh yang menjelaskan cara mengkonfigurasi file.
sudo vim /opt/tomcat/latest/conf/tomcat-users.xml
Kami akan mendefinisikan pengguna baru dengan akses ke antarmuka web Tomcat (manager-gui dan admin-gui) di tomcat-users.xml
file, seperti yang ditunjukkan di bawah ini. Pastikan Anda mengubah nama pengguna dan sandi menjadi sesuatu yang lebih aman:
<tomcat-users>
<!--
Comments
-->
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>
Secara default, antarmuka manajemen web Tomcat hanya mengizinkan akses dari localhost. Jika Anda ingin mengakses antarmuka web dari IP jarak jauh atau dari mana saja yang tidak disarankan karena berisiko keamanan, Anda dapat membuka file berikut dan membuat perubahan berikut.
Jika Anda perlu mengakses antarmuka web dari mana saja, buka file berikut dan beri komentar atau hapus baris yang disorot dengan warna kuning:
/opt/Tomcat/latest/webapps/manager/META-INF/context.xml<Context antiResourceLocking="false" privileged="true" >
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
/opt/Tomcat/latest/webapps/host-manager/META-INF/context.xml<Context antiResourceLocking="false" privileged="true" >
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
Jika Anda perlu mengakses antarmuka web hanya dari IP tertentu, alih-alih mengomentari blok, tambahkan IP publik Anda ke daftar. Katakanlah IP publik Anda adalah 32.32.32.32
dan Anda ingin mengizinkan akses hanya dari IP itu:
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|32.32.32.32" />
</Context>
/opt/Tomcat/latest/webapps/host-manager/META-INF/context.xml<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|32.32.32.32" />
</Context>
Daftar alamat IP yang diizinkan adalah daftar yang dipisahkan dengan bilah vertikal |
. Anda dapat menambahkan satu alamat IP atau menggunakan ekspresi reguler.
Mulai ulang layanan Tomcat agar perubahan diterapkan:
sudo systemctl restart tomcat
Uji Instalasi #
Buka browser Anda dan ketik:http://<your_domain_or_IP_address>:8080
Jika instalasi berhasil, layar seperti berikut akan muncul:
Dasbor pengelola aplikasi web Tomcat tersedia di http://<your_domain_or_IP_address>:8080/manager/html
. Dari sini, Anda dapat menerapkan, membatalkan penerapan, memulai, menghentikan, dan memuat ulang aplikasi Anda.
Dasbor manajer host virtual Tomcat tersedia di http://<your_domain_or_IP_address>:8080/host-manager/html
. Dari sini, Anda dapat membuat, menghapus, dan mengelola host virtual Tomcat.