Tutorial ini menjelaskan cara menginstal dan mengkonfigurasi Tomcat 9 di Ubuntu 20.04.
Apache Tomcat adalah server web sumber terbuka dan wadah servlet Java. Ini adalah salah satu pilihan paling populer untuk membangun situs web dan aplikasi berbasis Java. Tomcat ringan, mudah digunakan, dan memiliki ekosistem pengaya yang kuat.
Menginstal Java #
Tomcat 9 membutuhkan Java SE 8 atau yang lebih baru untuk diinstal pada sistem. Kami akan menginstal OpenJDK 11, implementasi open-source Platform Java.
Jalankan perintah berikut sebagai root atau pengguna dengan hak istimewa sudo atau root untuk memperbarui indeks paket dan menginstal paket OpenJDK 11 JDK:
sudo apt update
sudo apt install openjdk-11-jdk
Setelah instalasi selesai, verifikasi dengan memeriksa versi Java:
java -version
Outputnya akan terlihat seperti ini:
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, 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.35
. Sebelum melanjutkan ke langkah berikutnya, periksa halaman unduhan Tomcat 9 untuk melihat apakah versi yang lebih baru tersedia.
Gunakan wget
untuk mengunduh file zip Tomcat ke /tmp
direktori:
VERSION=9.0.35
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 dengan patch keamanan dan fitur baru. 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
Kemudian, saat memutakhirkan Tomcat, buka paket versi yang lebih baru dan ubah symlink agar mengarah ke sana.
Pengguna sistem yang dibuat sebelumnya harus memiliki akses ke direktori instalasi Tomcat. Ubah kepemilikan direktori menjadi pengguna dan grup Tomcat:
sudo chown -R tomcat: /opt/tomcat
Skrip shell di dalam bin
Tomcat direktori harus dapat dieksekusi:
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
Skrip ini digunakan untuk memulai, menghentikan, dan, jika tidak, mengelola instance Tomcat.
Membuat File Unit SystemD #
Alih-alih menggunakan skrip shell untuk memulai dan menghentikan server Tomcat, 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
Tempelkan konfigurasi 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/java-11-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"
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
Ubah JAVA_HOME
variabel jika jalur ke instalasi Java Anda berbeda. Simpan dan tutup file dan beri tahu systemd bahwa ada file unit baru:
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: enabled)
Active: active (running) since Mon 2020-05-25 17:58:37 UTC; 4s ago
Process: 5342 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 5362 (java)
...
Anda dapat memulai, menghentikan, dan memulai ulang Tomcat sama seperti layanan systemd lainnya:
sudo systemctl start tomcat
sudo systemctl stop tomcat
sudo systemctl restart tomcat
Mengonfigurasi Firewall #
Jika server Anda dilindungi oleh firewall dan Anda ingin mengakses Tomcat dari luar jaringan lokal Anda, Anda perlu membuka port 8080
.
Gunakan perintah berikut untuk membuka port yang diperlukan:
sudo ufw allow 8080/tcp
Umumnya, saat menjalankan Tomcat di lingkungan produksi, Anda harus menggunakan penyeimbang beban atau proxy terbalik. Ini adalah praktik terbaik untuk mengizinkan akses ke port 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
mengajukan. File ini adalah template dengan komentar dan contoh yang menunjukkan cara membuat pengguna atau peran.
Dalam contoh ini, kami akan membuat pengguna dengan peran "admin-gui" dan "manager-gui". Peran “admin-gui” memungkinkan pengguna untuk mengakses /host-manager/html
URL dan buat, hapus, dan kelola host virtual. Peran "manager-gui" memungkinkan pengguna untuk menerapkan dan membatalkan penerapan aplikasi web tanpa harus memulai ulang seluruh wadah melalui /host-manager/html
antarmuka.
Buka tomcat-users.xml
file dan buat pengguna baru, seperti yang ditunjukkan di bawah ini:
sudo nano /opt/tomcat/latest/conf/tomcat-users.xml
/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>
Pastikan Anda mengubah nama pengguna dan sandi menjadi sesuatu yang lebih aman.
Secara default, antarmuka manajemen web Tomcat dikonfigurasi untuk mengizinkan akses ke aplikasi Manajer dan Manajer Host hanya dari host lokal. Untuk mengakses antarmuka web dari IP jarak jauh, Anda harus menghapus batasan ini. Ini mungkin memiliki berbagai implikasi keamanan, dan tidak disarankan untuk sistem produksi.
Untuk mengaktifkan akses ke antarmuka web dari mana saja, buka dua file berikut dan beri komentar atau hapus baris yang disorot dengan warna kuning.
Untuk aplikasi Manajer:
sudo nano /opt/tomcat/latest/webapps/manager/META-INF/context.xml
Untuk aplikasi Pengelola Host:
sudo nano /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
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 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>
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 Tomcat #
Buka browser Anda dan ketik:http://<your_domain_or_IP_address>:8080
Dengan asumsi instalasi berhasil, layar yang mirip dengan berikut akan muncul:
Manajer aplikasi web Tomcat tersedia di:http://<your_domain_or_IP_address>:8080/manager/html
.
Manajer host virtual Tomcat tersedia di:http://<your_domain_or_IP_address>:8080/host-manager/html
.