Apache Tomcat adalah implementasi open-source dari Java Servlet, JavaServer Pages, Java Expression Language, dan teknologi Java WebSocket. Ini adalah salah satu aplikasi dan server web yang paling banyak diadopsi di dunia saat ini. Tomcat mudah digunakan dan memiliki ekosistem pengaya yang kuat.
Tutorial ini menjelaskan cara menginstal Tomcat 9.0 di CentOS 8.
Menginstal Java #
Tomcat 9 membutuhkan Java SE 8 atau lebih baru. Kami akan menginstal OpenJDK 11, implementasi open-source Platform Java.
Jalankan perintah berikut sebagai root atau pengguna dengan hak sudo untuk menginstal Java:
sudo dnf install java-11-openjdk-devel
Setelah instalasi selesai, verifikasi dengan memeriksa versi Java:
java -version
Outputnya akan terlihat seperti ini:
openjdk version "11.0.5" 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)
Membuat Pengguna Sistem #
Menjalankan Tomcat di bawah pengguna root adalah risiko keamanan. Kami akan membuat pengguna dan grup sistem baru dengan direktori home /opt/tomcat
yang akan menjalankan layanan Tomcat. Untuk melakukannya, masukkan perintah berikut:
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Mengunduh Tomcat #
Distribusi biner Tomcat tersedia untuk diunduh dari halaman unduhan Tomcat.
Pada saat penulisan, versi Tomcat terbaru adalah 9.0.30
. Sebelum melanjutkan ke langkah berikutnya, periksa halaman unduhan Tomcat 9 untuk melihat apakah versi yang lebih baru tersedia.
Unduh file zip Tomcat dengan wget
ke /tmp
direktori:
VERSION=9.0.30
wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz -P /tmp
Setelah unduhan selesai, ekstrak file tar ke /opt/tomcat
direktori::
sudo tar -xf /tmp/apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat/
Tomcat diperbarui secara berkala. Untuk memiliki kontrol lebih besar atas versi dan pembaruan, kami akan membuat tautan simbolis yang disebut latest
, yang menunjuk ke direktori instalasi Tomcat:
sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest
Pengguna sistem yang telah dibuat sebelumnya, harus memiliki akses ke direktori instalasi Tomcat. Ubah kepemilikan direktori menjadi pengguna dan grup Tomcat:
sudo chown -R tomcat: /opt/tomcat
Buat skrip shell di dalam bin
direktori yang dapat dieksekusi:
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
Skrip ini digunakan untuk memulai dan menghentikan Tomcat.
Membuat File Unit Systemd #
Alih-alih memulai dan menghentikan server Tomcat secara manual, kami akan mengaturnya agar berjalan sebagai layanan. Buka editor teks Anda dan buat tomcat.service
file unit di /etc/systemd/system/
direktori:
sudo nano /etc/systemd/system/tomcat.service
Tempel konten berikut:
/etc/systemd/system/Tomcat.service[Unit]
Description=Tomcat 9 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/jre"
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
Simpan dan tutup file.
Beri tahu systemd bahwa ada file layanan baru, dengan mengetik:
sudo systemctl daemon-reload
Aktifkan dan mulai layanan Tomcat:
sudo systemctl enable --now tomcat
Periksa status layanan:
sudo systemctl status tomcat
Outputnya akan menunjukkan bahwa server Tomcat diaktifkan dan berjalan:
● tomcat.service - Tomcat 9 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2020-01-15 20:38:07 UTC; 30s ago
Process: 3957 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
...
Mengonfigurasi Firewall #
Jika server Anda dilindungi oleh firewall dan Anda ingin mengakses antarmuka Tomcat dari luar jaringan lokal, Anda perlu membuka port 8080
.
Gunakan perintah berikut untuk membuka port yang diperlukan:
Biasanya, saat menjalankan Tomcat di lingkungan produksi, Anda harus menggunakan penyeimbang beban atau proxy terbalik. Ini adalah praktik terbaik untuk mengizinkan akses ke portsudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload
8080
hanya dari jaringan internal Anda. Mengonfigurasi Antarmuka Manajemen Web Tomcat #
Pada titik ini, Anda seharusnya dapat mengakses Tomcat dengan browser web pada port 8080
. Antarmuka manajemen web tidak dapat diakses karena kami belum membuat pengguna.
Pengguna dan peran Tomcat 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 nano /opt/tomcat/latest/conf/tomcat-users.xml
Untuk membuat pengguna baru yang dapat mengakses antarmuka web Tomcat (manager-gui dan admin-gui), edit file seperti yang ditunjukkan di bawah ini. Pastikan Anda mengubah nama pengguna dan sandi menjadi sesuatu yang lebih aman:
/opt/Tomcat/latest/conf/Tomcat-users.xml<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 dikonfigurasi untuk mengizinkan akses hanya dari host lokal.
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>
Harap diperhatikan, tidak disarankan untuk mengizinkan akses dari mana saja karena ini merupakan risiko keamanan.
Jika Anda ingin mengakses antarmuka web hanya dari IP tertentu, alih-alih mengomentari blok, tambahkan IP publik Anda ke daftar.
Katakanlah IP publik Anda adalah 41.41.41.41
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|41.41.41.41" />
</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|41.41.41.41" />
</Context>
Daftar alamat IP yang diizinkan adalah daftar yang dipisahkan dengan bilah vertikal |
. Anda dapat menambahkan satu alamat IP atau menggunakan ekspresi reguler.
Setelah selesai, mulai ulang layanan Tomcat agar perubahan diterapkan:
sudo systemctl restart tomcat
Menguji Instalasi #
Buka browser Anda dan ketik:http://<your_domain_or_IP_address>:8080
Setelah instalasi berhasil, layar yang mirip dengan berikut akan muncul:
Dasbor manajer aplikasi web Tomcat memungkinkan Anda untuk menyebarkan, membatalkan penerapan, memulai, menghentikan, dan memuat ulang aplikasi Anda. Ini tersedia di:http://<your_domain_or_IP_address>:8080/manager/html
.
Dasbor pengelola host virtual Tomcat memungkinkan Anda membuat, menghapus, dan mengelola host virtual Tomcat. Ini tersedia di:http://<your_domain_or_IP_address>:8080/host-manager/html
.