GNU/Linux >> Belajar Linux >  >> Rocky Linux

Cara Instal Apache Tomcat 10 dengan Nginx di Rocky Linux 8

Tomcat adalah server web sumber terbuka untuk aplikasi berbasis Java. Ini digunakan untuk menyebarkan aplikasi Java Servlet dan JSP. Servlet Java adalah program kecil yang mendefinisikan bagaimana server menangani permintaan dan tanggapan. Tomcat bertindak sebagai implementasi open-source dari Java Servlet, JavaServer Pages, Java Expression Language, dan teknologi Java WebSocket.

Ada beberapa versi Tomcat yang tersedia. Kami akan membahas instalasi Tomcat 10 untuk tutorial kami. Jika Anda ingin menginstal Tomcat 9, instruksinya akan sama. Jika ada perubahan, itu akan ditentukan dalam tutorial.

Untuk tutorial kami, kami akan menginstal Tomcat 10 bersama dengan server Nginx untuk bertindak sebagai proxy terbalik dan melindunginya menggunakan SSL. Ada versi Tomcat 10.1.x yang merupakan versi alfa terbaru dari Tomcat, tetapi kami tidak akan menginstalnya.

Prasyarat

  • Server yang menjalankan Rocky Linux 8.5

  • Pengguna non-sudo dengan hak pengguna super.

  • Pastikan semuanya diperbarui.

    $ sudo dnf update
    
  • Paket yang diperlukan untuk instalasi.

    $ sudo dnf install wget tar
    

Langkah 1 - Instal Java

Tomcat 9 dan 10 membutuhkan Java 8 dan yang lebih baru. Kami akan menginstal OpenJDK 11, implementasi open-source platform Java.

Jalankan perintah berikut untuk menginstal OpenJDK.

$ sudo dnf install java-11-openjdk-devel

Verifikasi penginstalan.

$ java -version
openjdk version "11.0.13" 2021-10-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing)

Langkah 2 - Buat Pengguna Sistem

Kami akan membuat pengguna sistem baru untuk meminimalkan risiko keamanan dengan menjalankan Tomcat sebagai pengguna root. Untuk pengguna baru, kami akan mengatur /opt/tomcat sebagai direktori home.

Jalankan perintah berikut untuk membuat pengguna sistem baru untuk Tomcat.

$ sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat

Langkah 3 - Unduh Tomcat

Versi terbaru Tomcat v10 dapat diunduh dari halaman unduhannya. Pada saat penulisan tutorial ini, v10.0.14 adalah versi terbaru yang tersedia. Periksa versi terbaru sebelum Anda mengunduh Tomcat.

Gunakan wget untuk mengunduh Tomcat.

$ VERSION=10.0.14
$ wget https://dlcdn.apache.org/tomcat/tomcat-10/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz

Ekstrak file ke /opt/tomcat direktori.

$ sudo tar -xf apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat/

Buat tautan simbolis ke versi terbaru Tomcat yang mengarah ke direktori instalasi Tomcat.

$ sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest

Ubah kepemilikan direktori menjadi pengguna yang dibuat sebelumnya.

$ sudo chown -R tomcat:tomcat /opt/tomcat

Langkah 4 - Buat File Unit Systemd

Langkah selanjutnya adalah membuat file layanan untuk server Tomcat agar dapat dijalankan secara otomatis.

Buat dan buka file /etc/systemd/system/tomcat.service untuk diedit.

$ sudo nano /etc/systemd/system/tomcat.service

Tempelkan kode berikut.

[Unit]
Description=Apache Tomcat 10 Servlet container
Wants=network.target
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
Restart=always

[Install]
WantedBy=multi-user.target

Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta untuk menyimpan.

Langkah 5 - Mulai dan Aktifkan layanan Tomcat

Muat ulang daemon layanan untuk mengaktifkan layanan Tomcat.

$ sudo systemctl daemon-reload

Aktifkan dan Mulai layanan Tomcat.

$ sudo systemctl enable tomcat --now

Periksa status layanan.

$ sudo systemctl status tomcat
? tomcat.service - Apache Tomcat 10 Servlet container
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2021-12-17 15:54:28 UTC; 24s ago
  Process: 86219 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 86226 (java)
    Tasks: 19 (limit: 11411)
   Memory: 132.7M
   CGroup: /system.slice/tomcat.service
           ??86226 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=/opt/tomcat/latest/conf/logging.properties>

Dec 17 15:54:27 howtoforge systemd[1]: Starting Apache Tomcat 10 Servlet container...
Dec 17 15:54:28 howtoforge systemd[1]: Started Apache Tomcat 10 Servlet container.

Langkah 6 - Konfigurasi Firewall

Rocky Linux menggunakan Firewalld Firewall. Periksa status firewall.

$ sudo firewall-cmd --state
running

Izinkan port HTTP dan HTTPS.

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

Muat ulang firewall untuk mengaktifkan perubahan.

$ sudo firewall-cmd --reload

Langkah 7 - Konfigurasikan Antarmuka Manajemen Web Tomcat

Antarmuka pengelolaan web hanya dapat diakses setelah kami membuat kredensial pengguna untuknya.

Pengguna dan peran Tomcat didefinisikan dalam /opt/tomcat/latest/conf/tomcat-users.xml mengajukan. Buka file untuk diedit.

$ sudo nano /opt/tomcat/latest/conf/tomcat-users.xml

Tambahkan baris berikut sebelum </tomcat-users garis. Ganti nama pengguna dan sandi dengan kredensial Anda.

Pilih kredensial yang berbeda untuk portal Manajer dan Administrator Tomcat.

<tomcat-users>
<!--
    Comments
-->
<role rolename="manager-gui"/>
    <user username="manager" password="managerpassword" roles="manager-gui" />
<role rolename="admin-gui"/>
	<user username="admin" password="adminpassword" roles="admin-gui"/>
</tomcat-users>

Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta untuk menyimpan.

Secara default, antarmuka Tomcat hanya dapat diakses dari localhost. Jika Anda perlu mengaksesnya dari mana saja, Anda perlu mengonfigurasinya.

Buka /opt/tomcat/latest/webapps/manager/META-INF/context.xml untuk diedit.

$ sudo nano /opt/tomcat/latest/webapps/manager/META-INF/context.xml

Hapus baris berikut atau beri komentar seperti yang ditentukan di bawah ini dengan melampirkannya di <!-- dan --> .

<!--
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->

Mengizinkan akses dari alamat IP mana pun adalah risiko keamanan. Anda dapat membatasinya dengan mengizinkan akses hanya dari alamat IP publik Anda. Jika alamat IP publik Anda 22.22.22.22 , lalu ubah barisnya sebagai berikut.

 <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|22.22.22.22" />

Daftar alamat IP yang diizinkan dipisahkan oleh bilah vertikal (| ). Anda dapat menambahkan satu alamat IP atau menggunakan ekspresi reguler.

Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta untuk menyimpan.

Lakukan perubahan yang sama pada file /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml juga.

Setelah selesai, restart server Tomcat.

$ sudo systemctl restart tomcat

Langkah 8 - Instal SSL

Untuk menginstal sertifikat SSL menggunakan Let's Encrypt, kita perlu menginstal alat Certbot.

Pertama, Anda perlu mengunduh dan menginstal repositori EPEL.

$ sudo dnf install epel-release

Jalankan perintah berikut untuk menginstal Certbot.

$ sudo dnf install certbot

Buat sertifikat SSL.

$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d tomcat.example.com

Perintah di atas akan mengunduh sertifikat ke /etc/letsencrypt/live/tomcat.example.com direktori di server Anda.

Buat grup Diffie-Hellman sertifikat.

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Buat direktori webroot tantangan untuk pembaruan otomatis Let's Encrypt.

$ sudo mkdir -p /var/lib/letsencrypt

Buat Pekerjaan Cron untuk memperbarui SSL. Ini akan berjalan setiap hari untuk memeriksa sertifikat dan memperbarui jika diperlukan. Untuk itu, buat dulu file /etc/cron.daily/certbot-renew dan buka untuk diedit.

$ sudo nano /etc/cron.daily/certbot-renew

Tempelkan kode berikut.

#!/bin/sh
certbot renew --cert-name tomcat.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"

Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.

Ubah izin pada file tugas agar dapat dieksekusi.

$ sudo chmod +x /etc/cron.daily/certbot-renew

Langkah 9 - Instal Nginx

Rocky Linux 8.5 dikirimkan dengan Nginx versi stabil terbaru. Instal menggunakan perintah berikut.

$ sudo dnf module install nginx:1.20

Verifikasi penginstalan.

$ nginx -v
nginx version: nginx/1.20.1

Aktifkan dan mulai layanan Nginx.

$ sudo systemctl enable nginx --now

Buat dan buka file /etc/nginx/conf.d/tomcat.conf untuk diedit.

$ sudo nano /etc/nginx/conf.d/tomcat.conf

Tempelkan kode berikut di dalamnya.

server {
    listen       443 ssl http2;
    listen       [::]:443 ssl http2;
    server_name  tomcat.example.com;

    access_log  /var/log/nginx/tomcat.access.log;
    error_log   /var/log/nginx/tomcat.error.log;
    
    # SSL
    ssl_certificate      /etc/letsencrypt/live/tomcat.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/tomcat.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/tomcat.example.com/chain.pem;
    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    resolver 8.8.8.8;

    location / {
      proxy_pass http://127.0.0.1:8080;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-Host $host;
      proxy_set_header X-Forwarded-Server $host;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}
# enforce HTTPS
server {
    listen       80;
    listen       [::]:80;
    server_name  tomcat.example.com;
    return 301   https://$host$request_uri;
}

Simpan file dengan menekan Ctrl + X dan memasukkan Y ketika diminta setelah selesai.

Buka file /etc/nginx/nginx.conf untuk diedit.

$ sudo nano /etc/nginx/nginx.conf

Tambahkan baris berikut sebelum baris include /etc/nginx/conf.d/*.conf; .

server_names_hash_bucket_size  64;

Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.

Verifikasi sintaks file konfigurasi Nginx.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Mulai ulang layanan Nginx untuk mengaktifkan konfigurasi baru.

$ sudo systemctl restart nginx

Langkah 10 - Jalankan TomCat

Luncurkan https://tomcat.example.com di browser Anda, dan itu akan membuka layar berikut.

Sekarang Anda dapat mengakses halaman Status Server, Aplikasi Manajer, dan Manajer Host menggunakan kredensial login yang kami konfigurasikan di langkah 7.

Kesimpulan

Ini mengakhiri tutorial kami tentang menginstal dan mengkonfigurasi Server Tomcat pada server berbasis Rocky Linux 8.5 dan menyajikannya melalui proxy terbalik Nginx, dan menggunakan SSL untuk melindunginya. Jika Anda memiliki pertanyaan, kirimkan di komentar di bawah.


Rocky Linux
  1. Bagaimana Cara Install WordPress dengan LEMP (Nginx, MariaDB, dan PHP) di Rocky Linux 8 ?

  2. Cara Instal Apache Maven di Rocky Linux/Alma Linux 8

  3. Cara Instal ModSecurity dengan Nginx di Rocky Linux 8

  1. Cara Instal Apache Tomcat 9 dengan Nginx Proxy di Debian 10

  2. Cara Menginstal Fail2ban dengan Firewalld di Rocky Linux 8.4

  3. Cara Instal Apache Kafka di Rocky Linux 8

  1. Cara Instal Apache Tomcat 10 dengan Nginx di Rocky Linux 8

  2. Cara Menginstal Apache Solr di Rocky Linux

  3. Cara Menginstal Joomla dengan Nginx di Rocky Linux