Apache Tomcat adalah server aplikasi berbasis JAVA open-source yang mengimplementasikan Java Servlet, JavaServer Pages, Java Expression Language, dan teknologi Java WebSocket. Ini adalah salah satu aplikasi dan server web yang paling banyak digunakan di dunia saat ini.
Tutorial ini menjelaskan cara menginstal Apache Tomcat 9.0 di Debian 10 Buster dan mengonfigurasi antarmuka manajemen web Tomcat.
Prasyarat #
Instruksi mengasumsikan bahwa Anda masuk sebagai root atau pengguna dengan hak istimewa sudo.
Menginstal OpenJDK #
Tomcat 9.0 membutuhkan Java SE 8 atau yang lebih baru untuk diinstal di server.
Jalankan perintah berikut untuk menginstal OpenJDKpackage:
sudo apt install default-jdk
Membuat pengguna Tomcat #
Menjalankan Tomcat sebagai pengguna root adalah risiko keamanan dan tidak disarankan. Kami akan membuat pengguna baru yang akan digunakan untuk menjalankan layanan Tomcat.
Jalankan perintah berikut membuat pengguna dan grup sistem baru dengan direktori home /opt/tomcat
:
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Mengunduh 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 rilis biner Tomcat terbaru:
cd /tmp
wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz
Saat unduhan selesai, ekstrak arsip yang di-gzip:
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 diperbarui secara berkala. Untuk memiliki kontrol lebih besar atas versi dan pembaruan, buat tautan simbolis dengan nama latest
yang menunjuk ke direktori instalasi Tomcat:
sudo ln -s /opt/tomcat/apache-tomcat-9.0.27 /opt/tomcat/latest
Nanti saat memutakhirkan Tomcat, cukup buka paket versi yang lebih baru dan ubah symlink agar mengarah ke versi terbaru.
Ubah kepemilikan /opt/tomcat
direktori ke pengguna dan grup tomcat
, sehingga pengguna dapat memiliki akses ke direktori instalasi:
sudo chown -R tomcat: /opt/tomcat
Buat skrip di dalam bin
direktori yang dapat dieksekusi:
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
Membuat File Unit SystemD #
Buka editor teks Anda dan buat file baru bernama tomcat.service
dengan isi sebagai berikut:
sudo nano /etc/systemd/system/tomcat.service
/etc/systemd/system/Tomcat.service[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 ada file unit baru dan mulai layanan Tomcat dengan mengetik:
sudo systemctl daemon-reload
sudo systemctl start tomcat
Periksa status layanan Tomcat dengan mengetik:
sudo systemctl status tomcat
● tomcat.service - Tomcat 9.0 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset:
Active: active (running) since Sat 2019-11-09 13:53:51 PST; 5s ago
Process: 5752 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status
Main PID: 5759 (java)
Jika tidak ada kesalahan, aktifkan 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
Menyesuaikan Firewall #
Jika Anda memiliki firewall yang berjalan di sistem Debian Anda dan Anda ingin mengakses antarmuka Tomcat dari luar jaringan lokal Anda, Anda harus membuka port 8080
:
sudo ufw allow 8080/tcp
Saat menjalankan aplikasi Tomcat di lingkungan produksi, kemungkinan besar Anda akan memiliki penyeimbang beban atau proxy terbalik, dan ini adalah praktik terbaik untuk membatasi akses ke port 8080 hanya ke jaringan internal Anda.
Mengonfigurasi Antarmuka Manajemen Web Tomcat #
Setelah Tomcat terinstal, 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 berisi komentar dan contoh yang menjelaskan cara mengkonfigurasi file:
sudo nano /opt/tomcat/latest/conf/tomcat-users.xml
Kami akan mendefinisikan pengguna baru di tomcat-users.xml
file, seperti yang ditunjukkan di bawah ini. Pengguna akan memiliki akses ke antarmuka web Tomcat (manager-gui dan admin-gui). 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.