Cách cài đặt Apache Tomcat với Nginx Reverse Proxy trên AlmaLinux 9

theanh

Administrator
Nhân viên
Apache Tomcat hay "Tomcat" là một bộ chứa Java Servlet mã nguồn mở và miễn phí cho mã Java và các ứng dụng. Ban đầu được Sun Microsystem tạo ra, sau đó tặng cơ sở mã cho Apache Software Foundation và phân phối theo Giấy phép Apache v2. Apache Tomcat cung cấp một môi trường máy chủ HTTP "thuần Java" trong đó mã Java có thể chạy. Nó cũng là một triển khai của các công nghệ JavaServer Pages, Java Expression Language và WebSocket.

Apache Tomcat là một trong những triển khai Java Servlet phổ biến nhất. Nó hỗ trợ SSL để bảo mật dữ liệu nhạy cảm như xác thực. Ngoài ra, nó nhẹ về tài nguyên máy chủ và đa nền tảng, có thể được cài đặt trên các hệ điều hành giống Unix, Windows và macOS.

Trong hướng dẫn sau, chúng tôi sẽ chỉ cho bạn cách cài đặt Apache Tomcat với Nginx làm proxy ngược trên máy chủ AlmaLinux 9. Bạn sẽ cài đặt Apache Tomcat thông qua gói nhị phân, sau đó cài đặt Nginx và thiết lập cấu hình khối máy chủ cho proxy ngược.

Điều kiện tiên quyết​

Trước khi bắt đầu, hãy đảm bảo bạn có những điều sau:
  • Máy chủ AlmaLinux 9.
  • Người dùng không phải root có quyền quản trị viên.

Cài đặt Java OpenJDK​

Trước khi cài đặt Tomcat, bạn phải cài đặt Java JDK vào máy chủ AlmaLinux của mình. Đối với Apache Tomcat, bạn có thể sử dụng Java JDK 11 trở lên. Trong ví dụ này, chúng tôi sẽ sử dụng Java OpenJDK 17, có sẵn theo mặc định trên kho lưu trữ AlmaLinux 9.

Để cài đặt OpenJDK 17, hãy chạy lệnh dnf bên dưới. Khi được yêu cầu xác nhận, hãy nhập y và nhấn ENTER.
Mã:
sudo dnf install java-17-openjdk java-17-openjdk-devel

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22232%22%3E%3C/svg%3E


Sau khi Java OpenJDK được cài đặt, hãy chạy lệnh java bên dưới để xác minh OpenJDK của bạn phiên bản.
Mã:
java --version
Bạn có thể thấy bên dưới rằng Java OpenJDK 17 đã được cài đặt.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22116%22%3E%3C/svg%3E

Tải xuống Apache Tomcat 10​

Sau khi cài đặt Java OpenJDK, bạn sẽ tải xuống và cài đặt Apache Tomcat thủ công qua gói nhị phân. Vì vậy, trước khi bắt đầu cài đặt, hãy truy cập trang Tải xuống Apache Tomcat và lấy liên kết tải xuống.

Để bắt đầu, hãy chạy lệnh bên dưới để tạo người dùng hệ thống mới tomcat với thư mục home mặc định /opt/tomcat.
Mã:
sudo groupadd tomcat
sudo adduser -r -s /usr/sbin/nologin -g tomcat -b /opt/tomcat tomcat
Bây giờ hãy tải xuống gói nhị phân Apache Tomcat bằng lệnh wget bên dưới. Tại thời điểm viết bài này, Apache Tomcat mới nhất là phiên bản 10.1.18. Vì vậy, hãy đảm bảo thay đổi biến VERSION bằng phiên bản Tomcat hiện tại của bạn.
Mã:
export VERSION=10.1.18
wget https://dlcdn.apache.org/tomcat/tomcat-10/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz
Sau khi quá trình tải xuống hoàn tất, hãy tạo một thư mục gốc mới cho người dùng tomcat /opt/tomcat và giải nén gói nhị phân Apache Tomcat của bạn vào đó.
Mã:
mkdir -p /opt/tomcat
sudo tar -xf apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat
Cuối cùng, hãy chạy lệnh bên dưới để tạo liên kết tượng trưng của thư mục Tomcat tới /opt/tomcat/mới nhất. Sau đó, thay đổi quyền sở hữu của người dùng thư mục /opt/tomcat 'tomcat'.
Mã:
sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest
sudo chown -R tomcat:tomcat /opt/tomcat

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22178%22%3E%3C/svg%3E

Thiết lập Apache Tomcat thành Dịch vụ​

Sau khi cài đặt Apache Tomcat, bước tiếp theo là thiết lập dịch vụ systemd mới cho Apache Tomcat. Theo cách này, bạn có thể dễ dàng quản lý Apache Tomcat thông qua tiện ích systemctl. Ngoài ra, điều này sẽ đảm bảo rằng bạn khởi chạy tập lệnh cho Tomcat ở một/một nơi duy nhất.

Tạo tệp dịch vụ systemd mới /etc/systemd/system/tomcat10.service bằng lệnh trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/systemd/system/tomcat10.service
Chèn cấu hình sau làm tập lệnh dịch vụ systemd của Apache Tomcat. Trong tham số CATALINA_OPTS, hãy đảm bảo điều chỉnh bộ nhớ heap tối đa cho Apache Tomcat.
Mã:
[Unit]
Description=Tomcat 10 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/java"
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 -Xmx2048M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh

[Install]
WantedBy=multi-user.target
Lưu tệp và thoát khỏi trình chỉnh sửa sau khi bạn hoàn tất.

Bây giờ hãy chạy lệnh sau để tải lại trình quản lý systemd và áp dụng dịch vụ tomcat10 mới của bạn.
Mã:
sudo systemctl daemon-reload
Bây giờ bạn có thể khởi động và kích hoạt dịch vụ Apache Tomcat tomat10 bằng cách sử dụng lệnh sau lệnh.
Mã:
sudo systemctl enable tomcat10
sudo systemctl start tomcat10

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22166%22%3E%3C/svg%3E


Sau khi bắt đầu, hãy chạy lệnh bên dưới để xác minh dịch vụ tomcat10. Nếu mọi việc diễn ra tốt đẹp, bạn sẽ thấy dịch vụ tomcat10 đang chạy.
Mã:
sudo systemctl status tomcat10

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22215%22%3E%3C/svg%3E


Khi Apache Tomcat đang chạy, hãy thực hiện lệnh firewall-cmd bên dưới để mở cổng 8080 được Apache sử dụng Tomcat.
Mã:
sudo firewall-cmd --add-port=8080/tcp
Cuối cùng, hãy khởi chạy trình duyệt web của bạn và truy cập địa chỉ IP của máy chủ theo sau là cổng 8080 (http://192.168.5.50:8080). Nếu cài đặt Apache Tomcat thành công, bạn sẽ nhận được trang chỉ mục mặc định như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22552%22%3E%3C/svg%3E

Thiết lập xác thực trong Apache Tomcat 10​

Lúc này, bạn đã cài đặt Apache Tomcat và hiện đang chạy. Trong phần này, bạn sẽ khám phá cách thiết lập và bật xác thực mật khẩu trên Apache Tomcat.

Đầu tiên, hãy chạy lệnh nano editor bên dưới để mở tệp /opt/tomcat/latest/conf/tomcat-users.xml.
Mã:
sudo nano /opt/tomcat/latest/conf/tomcat-users.xml
Thêm cấu hình sau vào phần '<tomcat-users> ... </tomcat-users>'. Và hãy nhớ thay đổi tên người dùng mặc định là admin và mật khẩu tomcatadmin bằng thông tin đăng nhập mới.
Mã:
Lưu và thoát tệp khi bạn hoàn tất.

Bây giờ hãy mở cấu hình cho Apache Tomcat Manager và Host Manager bằng lệnh nano editor bên dưới.
Mã:
sudo nano /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
sudo nano /opt/tomcat/latest/webapps/manager/META-INF/context.xml
Gửi bình luận '<!-- ... -->' trên 'className="org.apache.catalina.valves.RemoteAddrValve"' để cho phép truy cập vào cả Apache Tomcat Manager và Host Manager từ mọi nơi. Xem cấu hình bên dưới.
Mã:
(Tùy chọn) Bạn cũng có thể chỉ định địa chỉ IP cho phép bạn truy cập Tomcat Manager và Host Manager bằng cách thêm địa chỉ IP của bạn như sau:
Mã:
Lưu tệp và thoát khỏi trình chỉnh sửa khi hoàn tất.

Khi mọi thứ đã hoàn tất, bây giờ bạn có thể khởi động lại dịch vụ tomcat10 sử dụng lệnh bên dưới để có hiệu lực. Sau khi thực hiện, Apache Tomcat Manager và Host Manager của bạn sẽ chạy với xác thực mật khẩu.
Mã:
sudo systemctl restart tomcat10
Quay lại trình duyệt của bạn và truy cập URL Apache Tomcat Manager tại http://192.168.5.50:8080/manager/. Khi được nhắc nhập mật khẩu xác thực cơ bản, hãy nhập tên người dùng và mật khẩu quản trị Apache Tomcat của bạn, sau đó nhấp vào Đăng nhập.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22294%22%3E%3C/svg%3E


Nếu bạn có tên người dùng và mật khẩu quản trị chính xác, bạn sẽ thấy bảng điều khiển Apache Tomcat Manager như thế này:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22522%22%3E%3C/svg%3E


Cuối cùng, hãy truy cập URL Apache Tomcat Host Manager qua http://192.168.5.50:8080/host-manager/và đăng nhập bằng tên người dùng và mật khẩu quản trị Tomcat khi được nhắc xác thực. Bạn sẽ thấy bảng điều khiển Host Manager như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22543%22%3E%3C/svg%3E

Thiết lập Nginx làm Proxy ngược​

Lúc này, bạn đã hoàn tất cài đặt Apache Tomcat. Bước tiếp theo bạn sẽ thực hiện là cài đặt và cấu hình Nginx làm proxy ngược cho Apache Tomcat.

Để cài đặt Nginx trên máy chủ AlmaLinux của bạn, hãy chạy lệnh dnf bên dưới. Nhập Y để xác nhận và tiếp tục cài đặt.
Mã:
sudo dnf install nginx

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22242%22%3E%3C/svg%3E


Sau khi Nginx được cài đặt, hãy tạo cấu hình khối máy chủ mới /etc/nginx/conf.d/tomcat.conf bằng trình chỉnh sửa nano lệnh.
Mã:
sudo nano /etc/nginx/conf.d/tomcat.conf
Thêm khối máy chủ sau để thiết lập Nginx làm proxy ngược cho Apache Tomcat chạy trên cổng 8080.
Mã:
server {
listen 80;

server_name tomcat.howtoforge.local;
access_log /var/log/nginx/tomcat-access.log;
error_log /var/log/nginx/tomcat-error.log;

location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080/;
}
}
Lưu tệp và thoát khỏi trình chỉnh sửa.

Bây giờ hãy chạy lệnh bên dưới để xác minh cấu hình Nginx của bạn và đảm bảo rằng bạn đã cú pháp.
Mã:
sudo nginx -t

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22621%22%20height=%22148%22%3E%3C/svg%3E


Tiếp theo, chạy lệnh systemctl bên dưới để khởi động và kích hoạt Nginx web máy chủ.
Mã:
sudo systemctl start nginx
sudo systemctl enable nginx
Khi Nginx khởi động, hãy chạy lệnh sau để xác minh dịch vụ Nginx. Nếu đang chạy, bạn sẽ thấy đầu ra đang hoạt động (đang chạy).
Mã:
sudo systemctl status nginx
Bạn có thể thấy Nginx được bật và đang chạy trên máy chủ AlmaLinux của bạn bên dưới.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22261%22%3E%3C/svg%3E

Cấu hình Firewalld​

Với Apache Tomcat đang chạy dưới Nginx, bạn phải mở cổng HTTP 0 trên cấu hình firewalld của bạn.

Chạy lệnh sau để mở dịch vụ HTTP và tải lại firewalld trong dịch vụ AlmaLinux của bạn.
Mã:
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload
Bây giờ hãy xác minh danh sách các quy tắc firewalld bằng lệnh bên dưới.
Mã:
sudo firewall-cmd --list-all
Hãy đảm bảo rằng dịch vụ HTTP cho máy chủ web Nginx là đã bật.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22664%22%20height=%22276%22%3E%3C/svg%3E


Bây giờ hãy quay lại trình duyệt web của bạn và truy cập tên miền cục bộ của khối máy chủ Nginx, chẳng hạn như http://tomcat.howtoforge.local/. Nếu cấu hình proxy ngược Nginx của bạn thành công, bạn sẽ thấy trang chỉ mục mặc định của Apache Tomcat.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22325%22%3E%3C/svg%3E


Bây giờ hãy điều hướng đến URL Trình quản lý Tomcat qua http://tomcat.howtoforge.local/manager. Khi được nhắc xác thực, hãy nhập tên người dùng và mật khẩu Apache Tomcat của bạn, sau đó nhấp vào Đăng nhập.

Nếu bạn có tên người dùng và mật khẩu đúng, bạn sẽ thấy bảng điều khiển Apache Tomcat Manager như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22388%22%3E%3C/svg%3E


Cuối cùng, hãy điều hướng đến URL Apache Tomcat Host Manager http://tomcat.howtoforge.local/host-manager/ và bạn sẽ thấy bảng điều khiển Apache Tomcat Host Manager như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22372%22%3E%3C/svg%3E

Kết luận​

Xin chúc mừng! Bạn đã cài đặt thành công Apache Tomcat trên máy chủ AlmaLinux 9. Bạn đã cài đặt Apache Tomcat 10 theo cách thủ công thông qua một gói nhị phân trên máy chủ AlmaLinux. Ngoài ra, bạn cũng đã cấu hình Nginx làm proxy ngược cho cài đặt Apache Tomcat của mình. Và cũng đã cấu hình firewalld để mở cổng HTTP.
 
Back
Bên trên