Tomcat adalah implementasi open-source dari Java Servlet, JavaServer Pages, Java Expression Language, dan teknologi Java WebSocket.
Tutorial ini mencakup langkah-langkah yang diperlukan untuk menginstal Tomcat 9.0 di CentOS 7.
Prasyarat #
Pengguna yang Anda masuki harus memiliki hak sudo untuk dapat menginstal paket.
Instal OpenJDK #
Tomcat 9 membutuhkan Java SE 8 atau lebih baru. Kami akan menginstal OpenJDK, implementasi open-source Platform Java, yang merupakan pengembangan dan runtime Java default di CentOS 7.
Instal Java dengan mengetikkan perintah berikut:
sudo yum install java-1.8.0-openjdk-devel
Buat pengguna sistem Tomcat #
Menjalankan Tomcat sebagai pengguna root adalah risiko keamanan dan tidak dianggap sebagai praktik terbaik.
Kami akan membuat pengguna dan grup sistem baru dengan direktori home /opt/tomcat
yang akan menjalankan layanan Tomcat:
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Unduh 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.
Arahkan ke /tmp
direktori dan unduh file zip Tomcat menggunakan perintah wget berikut:
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, kami akan membuat tautan simbolis yang disebut latest
, yang menunjuk ke direktori instalasi Tomcat:
sudo ln -s /opt/tomcat/apache-tomcat-9.0.27 /opt/tomcat/latest
Pengguna Tomcat yang sebelumnya kita siapkan harus memiliki akses ke direktori instalasi Tomcat.
Jalankan perintah berikut untuk mengubah kepemilikan direktori menjadi pengguna dan grup kucing jantan:
sudo chown -R tomcat: /opt/tomcat
Buat skrip di dalam bin
direktori yang dapat dieksekusi dengan mengeluarkan chmod
berikut ini perintah:
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
Buat file unit systemd #
Untuk menjalankan Tomcat 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 kami membuat file unit baru dengan mengetik:
sudo systemctl daemon-reload
Aktifkan dan mulai layanan Tomcat:
sudo systemctl enable tomcat
sudo systemctl start tomcat
Periksa status layanan dengan perintah berikut:
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-11-15 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
Sesuaikan 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:
Dalam kebanyakan kasus, saat menjalankan Tomcat di lingkungan produksi, Anda akan menggunakan penyeimbang beban atau proxy terbalik. Ini adalah praktik terbaik untuk mengizinkan akses ke portsudo firewall-cmd --zone=public --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
8080
hanya untuk jaringan internal Anda. Konfigurasi Antarmuka Manajemen Web Tomcat #
Pada titik ini Tomcat diinstal, dan kita dapat mengaksesnya dengan browser web pada port 8080
, tetapi kami tidak dapat mengakses antarmuka manajemen web karena kami belum membuat pengguna.
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 nano /opt/tomcat/latest/conf/tomcat-users.xml
Untuk menambahkan pengguna baru yang dapat mengakses antarmuka web Tomcat (manager-gui dan admin-gui), Anda perlu mendefinisikan pengguna di tomcat-users.xml
file seperti gambar 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 dikonfigurasi untuk mengizinkan akses hanya dari localhost. Jika Anda ingin dapat mengakses antarmuka web dari IP jarak jauh atau dari mana saja yang tidak disarankan karena merupakan risiko keamanan, Anda dapat membuka file berikut dan melakukan 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 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
Uji Instalasi #
Buka browser Anda dan ketik:http://<your_domain_or_IP_address>:8080
Setelah instalasi berhasil, layar yang mirip dengan 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.