Tomcat là một máy chủ web nguồn mở cho các ứng dụng dựa trên Java. Nó được sử dụng để triển khai các ứng dụng Java Servlet và JSP. Java servlet là các chương trình nhỏ xác định cách máy chủ xử lý các yêu cầu và phản hồi. Tomcat hoạt động như một triển khai nguồn mở của các công nghệ Java Servlet, JavaServer Pages, Java Expression Language và Java WebSocket.
Có nhiều phiên bản Tomcat khác nhau. Chúng tôi sẽ thảo luận về việc cài đặt Tomcat 10 cho hướng dẫn của mình. Nếu bạn muốn cài đặt Tomcat 9, hướng dẫn sẽ giống nhau. Nếu có bất kỳ thay đổi nào, chúng sẽ được chỉ định trong hướng dẫn.
Đối với hướng dẫn của mình, chúng tôi sẽ cài đặt Tomcat 10 cùng với máy chủ Nginx để hoạt động như một proxy ngược và bảo vệ nó bằng SSL. Có phiên bản Tomcat 10.1.x là phiên bản alpha mới nhất của Tomcat, nhưng chúng tôi sẽ không cài đặt phiên bản đó.
Chạy lệnh sau để cài đặt OpenJDK.
Xác minh cài đặt.
Chạy lệnh sau để tạo người dùng hệ thống mới cho Tomcat.
Sử dụng wget để tải Tomcat.
Giải nén tệp vào thư mục /opt/tomcat.
Tạo liên kết tượng trưng đến phiên bản mới nhất của Tomcat trỏ đến thư mục cài đặt Tomcat.
Thay đổi quyền sở hữu thư mục thành người dùng đã tạo trước đó.
Tạo và mở tệp /etc/systemd/system/tomcat.service để chỉnh sửa.
Dán mã sau.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc lưu.
Kích hoạt và Khởi động dịch vụ Tomcat.
Kiểm tra trạng thái dịch vụ.
Cho phép các cổng HTTP và HTTPS.
Tải lại tường lửa để kích hoạt các thay đổi.
Người dùng và vai trò Tomcat được xác định trong tệp /opt/tomcat/latest/conf/tomcat-users.xml. Mở tệp để chỉnh sửa.
Thêm các dòng sau trước dòng </tomcat-users. Thay thế tên người dùng và mật khẩu bằng thông tin xác thực của bạn.
Chọn thông tin xác thực khác nhau cho cổng thông tin Tomcat của Quản lý và Quản trị viên.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc lưu.
Theo mặc định, giao diện Tomcat chỉ có thể truy cập từ máy chủ cục bộ. Nếu bạn cần truy cập từ bất kỳ đâu, bạn cần phải cấu hình nó.
Mở /opt/tomcat/latest/webapps/manager/META-INF/context.xml để chỉnh sửa.
Xóa các dòng sau hoặc bình luận chúng theo chỉ định bên dưới bằng cách đặt chúng trong <!-- và -->.
Cho phép truy cập từ bất kỳ địa chỉ IP nào đều là rủi ro bảo mật. Bạn có thể hạn chế bằng cách chỉ cho phép truy cập từ địa chỉ IP công khai của mình. Nếu địa chỉ IP công khai của bạn là 22.22.22.22, hãy thay đổi dòng như sau.
Danh sách các địa chỉ IP được phép được phân tách bằng một thanh dọc (|). Bạn có thể thêm địa chỉ IP đơn lẻ hoặc sử dụng biểu thức chính quy.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc lưu.
Thực hiện các thay đổi tương tự trên tệp /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml.
Sau khi hoàn tất, hãy khởi động lại máy chủ Tomcat.
Trước tiên, bạn cần tải xuống và cài đặt kho lưu trữ EPEL.
Chạy các lệnh sau để cài đặt Certbot.
Tạo chứng chỉ SSL.
Lệnh trên sẽ tải chứng chỉ xuống thư mục /etc/letsencrypt/live/tomcat.example.com trên máy chủ của bạn.
Tạo chứng chỉ nhóm Diffie-Hellman.
Tạo thư mục webroot thử thách để tự động gia hạn Let's Encrypt.
Tạo Cron Job để gia hạn SSL. Nó sẽ chạy hàng ngày để kiểm tra chứng chỉ và gia hạn nếu cần. Để thực hiện việc đó, trước tiên, hãy tạo tệp /etc/cron.daily/certbot-renew và mở tệp đó để chỉnh sửa.
Dán mã sau.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Thay đổi quyền trên tệp tác vụ để làm cho tệp đó có thể thực thi được.
Xác minh cài đặt.
Bật và khởi động dịch vụ Nginx.
Tạo và mở tệp /etc/nginx/conf.d/tomcat.conf để chỉnh sửa.
Dán mã sau vào đó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất.
Mở tệp /etc/nginx/nginx.conf để chỉnh sửa.
Thêm dòng sau trước dòng include /etc/nginx/conf.d/*.conf;.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Xác minh cú pháp tệp cấu hình Nginx.
Khởi động lại dịch vụ Nginx để kích hoạt cấu hình mới.
Bây giờ bạn có thể truy cập các trang Server Status, Manager App và Host Manager bằng thông tin đăng nhập mà chúng tôi đã định cấu hình ở bước 7.
Có nhiều phiên bản Tomcat khác nhau. Chúng tôi sẽ thảo luận về việc cài đặt Tomcat 10 cho hướng dẫn của mình. Nếu bạn muốn cài đặt Tomcat 9, hướng dẫn sẽ giống nhau. Nếu có bất kỳ thay đổi nào, chúng sẽ được chỉ định trong hướng dẫn.
Đối với hướng dẫn của mình, chúng tôi sẽ cài đặt Tomcat 10 cùng với máy chủ Nginx để hoạt động như một proxy ngược và bảo vệ nó bằng SSL. Có phiên bản Tomcat 10.1.x là phiên bản alpha mới nhất của Tomcat, nhưng chúng tôi sẽ không cài đặt phiên bản đó.
Điều kiện tiên quyết
-
Máy chủ chạy Rocky Linux 8.5
-
Người dùng không dùng sudo có quyền siêu người dùng.
-
Đảm bảo mọi thứ đã được cập nhật.
Mã:$ sudo dnf update
-
Các gói cần thiết để cài đặt.
Mã:$ sudo dnf install wget tar
Bước 1 - Cài đặt Java
Tomcat 9 và 10 yêu cầu Java 8 trở lên. Chúng tôi sẽ cài đặt OpenJDK 11, bản triển khai mã nguồn mở của nền tảng Java.Chạy lệnh sau để cài đặt OpenJDK.
Mã:
$ sudo dnf install java-11-openjdk-devel
Mã:
$ java -versionopenjdk version "11.0.13" 2021-10-19 LTSOpenJDK Runtime Environment 18.9 (bản dựng 11.0.13+8-LTS)OpenJDK 64-Bit Server VM 18.9 (bản dựng 11.0.13+8-LTS, chế độ hỗn hợp, chia sẻ)
Bước 2 - Tạo Người dùng Hệ thống
Chúng tôi sẽ tạo một người dùng hệ thống mới để giảm thiểu mọi rủi ro bảo mật bằng cách chạy Tomcat với tư cách là người dùng root. Đối với người dùng mới, chúng ta sẽ đặt /opt/tomcat làm thư mục home.Chạy lệnh sau để tạo người dùng hệ thống mới cho Tomcat.
Mã:
$ sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Bước 3 - Tải xuống Tomcat
Phiên bản mới nhất của Tomcat v10 có thể được tải xuống từ trang tải xuống của nó. Tại thời điểm viết hướng dẫn này, v10.0.14 là phiên bản mới nhất hiện có. Kiểm tra phiên bản mới nhất trước khi tải Tomcat.Sử dụng wget để tải Tomcat.
Mã:
$ VERSION=10.0.14$ wget https://dlcdn.apache.org/tomcat/tomcat-10/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz
Mã:
$ sudo tar -xf apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat/
Mã:
$ sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest
Mã:
$ sudo chown -R tomcat:tomcat /opt/tomcat
Bước 4 - Tạo tệp Systemd Unit
Bước tiếp theo là tạo tệp dịch vụ cho máy chủ Tomcat để máy chủ này có thể tự động khởi động.Tạo và mở tệp /etc/systemd/system/tomcat.service để chỉnh sửa.
Mã:
$ sudo nano /etc/systemd/system/tomcat.service
Mã:
[Unit]Mô tả=Apache Tomcat 10 Servlet containerWants=network.targetAfter=network.target[Service]Type=forkingUser=tomcatGroup=tomcatEnvironment="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.shExecStop=/opt/tomcat/latest/bin/shutdown.shRestart=always[Install]WantedBy=multi-user.target
Bước 5 - Khởi động và Kích hoạt dịch vụ Tomcat
Tải lại daemon dịch vụ để kích hoạt dịch vụ Tomcat.
Mã:
$ sudo systemctl daemon-reload
Mã:
$ sudo systemctl enable tomcat --now
Mã:
$ sudo systemctl status tomcat? tomcat.service - Bộ chứa Servlet Apache Tomcat 10 Đã tải: đã tải (/etc/systemd/system/tomcat.service; đã bật; cài đặt trước của nhà cung cấp: đã tắt) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ sáu 2021-12-17 15:54:28 UTC; 24 giây trước Tiến trình: 86219 ExecStart=/opt/tomcat/latest/bin/startup.sh (mã=thoát, trạng thái=0/THÀNH CÔNG) PID chính: 86226 (java) Nhiệm vụ: 19 (giới hạn: 11411) Bộ nhớ: 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>17/12 15:54:27 howtoforge systemd[1]: Khởi động bộ chứa Servlet Apache Tomcat 10...17/12 15:54:28 howtoforge systemd[1]: Khởi động bộ chứa Servlet Apache Tomcat 10.
Bước 6 - Cấu hình Tường lửa
Rocky Linux sử dụng Tường lửa Firewalld. Kiểm tra trạng thái của tường lửa.
Mã:
$ sudo firewall-cmd --staterunning
Mã:
$ sudo firewall-cmd --permanent --add-service=http$ sudo firewall-cmd --permanent --add-service=https
Mã:
$ sudo firewall-cmd --reload
Bước 7 - Cấu hình Giao diện quản lý web Tomcat
Giao diện quản lý web sẽ chỉ có thể truy cập được sau khi chúng tôi tạo thông tin xác thực người dùng cho giao diện đó.Người dùng và vai trò Tomcat được xác định trong tệp /opt/tomcat/latest/conf/tomcat-users.xml. Mở tệp để chỉnh sửa.
Mã:
$ sudo nano /opt/tomcat/latest/conf/tomcat-users.xml
Chọn thông tin xác thực khác nhau cho cổng thông tin Tomcat của Quản lý và Quản trị viên.
Mã:
Theo mặc định, giao diện Tomcat chỉ có thể truy cập từ máy chủ cục bộ. Nếu bạn cần truy cập từ bất kỳ đâu, bạn cần phải cấu hình nó.
Mở /opt/tomcat/latest/webapps/manager/META-INF/context.xml để chỉnh sửa.
Mã:
$ sudo nano /opt/tomcat/latest/webapps/manager/META-INF/context.xml
Mã:
Mã:
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc lưu.
Thực hiện các thay đổi tương tự trên tệp /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml.
Sau khi hoàn tất, hãy khởi động lại máy chủ Tomcat.
Mã:
$ sudo systemctl restart tomcat
Bước 8 - Cài đặt SSL
Để cài đặt chứng chỉ SSL bằng Let's Encrypt, chúng ta cần cài đặt công cụ Certbot.Trước tiên, bạn cần tải xuống và cài đặt kho lưu trữ EPEL.
Mã:
$ sudo dnf install epel-release
Mã:
$ sudo dnf install certbot
Mã:
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d tomcat.example.com
Tạo chứng chỉ nhóm Diffie-Hellman.
Mã:
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Mã:
$ sudo mkdir -p /var/lib/letsencrypt
Mã:
$ sudo nano /etc/cron.daily/certbot-renew
Mã:
#!/bin/shcertbot renew --cert-name tomcat.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Thay đổi quyền trên tệp tác vụ để làm cho tệp đó có thể thực thi được.
Mã:
$ sudo chmod +x /etc/cron.daily/certbot-renew
Bước 9 - Cài đặt Nginx
Rocky Linux 8.5 đi kèm với phiên bản ổn định mới nhất của Nginx. Cài đặt bằng lệnh sau.
Mã:
$ sudo dnf module install nginx:1.20
Mã:
$ nginx -vphiên bản nginx: nginx/1.20.1
Mã:
$ sudo systemctl enable nginx --now
Mã:
$ sudo nano /etc/nginx/conf.d/tomcat.conf
Mã:
server { listen 443 ssl http2; lắng nghe [::]:443 ssl http2; tên_máy_chủ tomcat.example.com; nhật_nhật_truy_cập /var/log/nginx/tomcat.access.log; nhật_nhật_lỗi /var/log/nginx/tomcat.error.log; # Chứng_chỉ_SSL ssl /etc/letsencrypt/live/tomcat.example.com/fullchain.pem; khóa_chứng_chỉ_ssl /etc/letsencrypt/live/tomcat.example.com/privkey.pem; chứng_chỉ_tin_cậy_ssl /etc/letsencrypt/live/tomcat.example.com/chain.pem; thời gian chờ ssl_session_5 phút; bộ_gói_bộ_gói_phiên_phiên_phiên_phiên được chia sẻ:MozSSL:10 phút; ssl_session_tickets tắt; giao_thức_ssl TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers bật; 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 bật; ssl_stapling_verify on; ssl_dhparam /etc/ssl/certs/dhparam.pem; trình phân giải 8.8.8.8; vị trí / { 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; }}# thực thi HTTPSserver { lắng nghe 80; lắng nghe [::]:80; tên_máy_chủ tomcat.example.com; trả về 301 https://$host$request_uri;}
Mở tệp /etc/nginx/nginx.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
Mã:
server_names_hash_bucket_size 64;
Xác minh cú pháp tệp cấu hình Nginx.
Mã:
$ sudo nginx -tnginx: tệp cấu hình /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful
Mã:
$ sudo systemctl restart nginx
Bước 10 - Chạy TomCat
Khởi chạy https://tomcat.example.com trong trình duyệt của bạn và nó sẽ mở màn hình sau.Bây giờ bạn có thể truy cập các trang Server Status, Manager App và Host Manager bằng thông tin đăng nhập mà chúng tôi đã định cấu hình ở bước 7.