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

theanh

Administrator
Nhân viên
Apache Tomcat là một máy chủ web Java mã nguồn mở và là một bộ chứa Servlet được sử dụng để lưu trữ các ứng dụng web được viết bằng Java. Đây là lựa chọn đầu tiên của các nhà phát triển web để xây dựng và duy trì các trang web và ứng dụng động dựa trên nền tảng phần mềm Java. Đây là một dự án mã nguồn mở do Apache Software Foundation phát triển. Tomcat cho phép máy chủ web xử lý nội dung web động dựa trên Java.

Hướng dẫn này sẽ chỉ cho bạn cách cài đặt Apache Tomcat trên Ubuntu 22.04.

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

  • Một máy chủ chạy Ubuntu 22.04.
  • Một tên miền hợp lệ được trỏ bằng IP máy chủ của bạn.
  • Một mật khẩu gốc được cấu hình trên máy chủ.

Cài đặt Java JDK​

Apache Tomcat là một ứng dụng dựa trên Java nên Java phải được cài đặt trên máy chủ của bạn. Nếu Java chưa được cài đặt, bạn có thể cài đặt bằng lệnh sau:
Mã:
apt install default-jdk -y
Sau khi Java được cài đặt, bạn có thể xác minh phiên bản Java bằng lệnh sau lệnh:
Mã:
java -version
Bạn sẽ nhận được kết quả đầu ra sau:
Mã:
openjdk version "11.0.15" 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1)
OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1, mixed mode, sharing)

Cài đặt Apache Tomcat trên Ubuntu 22.04​

Đầu tiên, bạn nên chạy Tomcat dưới dạng người dùng riêng biệt. Bạn có thể tạo người dùng Tomcat bằng lệnh sau:
Mã:
useradd -m -d /opt/tomcat -U -s /bin/false tomcat
Tiếp theo, tải xuống phiên bản mới nhất của Apache Tomcat bằng lệnh sau:
Mã:
wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.20/bin/apache-tomcat-10.0.20.tar.gz
Sau khi tải xuống Apache Tomcat, hãy giải nén tệp đã tải xuống bên trong /opt thư mục:
Mã:
tar xzvf apache-tomcat-10*tar.gz -C /opt/tomcat --strip-components=1
Tiếp theo, thiết lập quyền sở hữu và quyền thích hợp cho thư mục Tomcat:
Mã:
chown -R tomcat:tomcat /opt/tomcat/ 
chmod -R u+x /opt/tomcat/bin
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Tạo Người dùng quản trị Tomcat​

Theo mặc định, có thể truy cập Tomcat mà không cần bất kỳ xác thực nào. Vì vậy, bạn nên bật xác thực và tạo người dùng quản trị cho Tomcat. Bạn có thể thêm nó bằng cách chỉnh sửa tệp cấu hình người dùng Tomcat:
Mã:
nano /opt/tomcat/conf/tomcat-users.xml
Thêm các dòng sau phía trên dòng </tomcat-users>:
Mã:
Lưu và đóng tệp khi bạn hoàn tất.

Bật Tomcat Remote Truy cập​

Theo mặc định, Tomcat được cấu hình để chỉ truy cập từ máy chủ cục bộ. Vì vậy, bạn nên bật quyền truy cập từ xa Tomcat để quản lý Tomcat từ máy chủ từ xa.

Để bật ứng dụng quản lý từ máy chủ từ xa, hãy chỉnh sửa tệp sau:
Mã:
nano /opt/tomcat/webapps/manager/META-INF/context.xml
Xóa dòng sau:
Mã:
Để bật ứng dụng quản lý máy chủ từ máy chủ từ xa, hãy chỉnh sửa tệp sau tệp:
Mã:
nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
Xóa dòng sau:
Mã:
Lưu và đóng tệp khi bạn hoàn tất.

Tạo tệp dịch vụ cho Apache Tomcat​

Tiếp theo, bạn sẽ cần tạo tệp dịch vụ để quản lý dịch vụ Tomcat thông qua systemd. Bạn có thể tạo nó bằng lệnh sau:
Mã:
nano /etc/systemd/system/tomcat.service
Thêm các dòng sau:
Mã:
[Unit]
Description=Tomcat
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
Lưu và đóng tệp sau đó tải lại daemon systemd để áp dụng thay đổi:
Mã:
systemctl daemon-reload
Tiếp theo, hãy khởi động dịch vụ Tomcat và cho phép nó khởi động khi khởi động lại hệ thống bằng lệnh sau:
Mã:
systemctl start tomcat
systemctl enable tomcat
Bạn có thể kiểm tra trạng thái của Apache Tomcat bằng lệnh sau:
Mã:
systemctl status tomcat
Bạn sẽ nhận được thông báo sau đầu ra:
Mã:
? tomcat.service - Tomcat Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2022-04-29 08:11:54 UTC; 6s ago Process: 18959 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS) Main PID: 18966 (java) Tasks: 29 (limit: 4630) Memory: 116.4M CPU: 5.312s CGroup: /system.slice/tomcat.service ??18966 /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Dja>
Apr 29 08:11:54 ubuntu systemd[1]: Starting Tomcat...
Apr 29 08:11:54 ubuntu startup.sh[18959]: Tomcat started.
Apr 29 08:11:54 ubuntu systemd[1]: Started Tomcat.
Lúc này, Tomcat đã được khởi động và lắng nghe trên cổng 8080. Bạn có thể kiểm tra bằng lệnh sau:
Mã:
ss -antpl | grep java
Bạn sẽ nhận được thông báo sau đầu ra:
Mã:
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:* users:(("java",pid=18966,fd=53))
LISTEN 0 100 *:8080 *:* users:(("java",pid=18966,fd=43))
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cấu hình Nginx làm Proxy ngược cho Tomcat​

Tiếp theo, bạn sẽ cần tạo Nginx làm proxy ngược cho Apache Tomcat. Trước tiên, hãy cài đặt máy chủ web Nginx bằng lệnh sau:
Mã:
apt-get install nginx -y
Sau khi máy chủ web Nginx được cài đặt, hãy tạo tệp cấu hình máy chủ ảo Nginx bằng lệnh sau:
Mã:
nano /etc/nginx/conf.d/tomcat.conf
Thêm nội dung sau dòng:
Mã:
server { listen 80; server_name tomcat.example.com; 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 và đóng tệp sau đó xác minh Nginx xem có lỗi cú pháp nào không bằng lệnh sau:
Mã:
nginx -t
Bạn sẽ nhận được thông báo sau đầu ra:
Mã:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Tiếp theo, khởi động lại dịch vụ Nginx để áp dụng các thay đổi:
Mã:
systemctl restart nginx
Bạn cũng có thể kiểm tra trạng thái Nginx bằng cách sử dụng lệnh sau lệnh:
Mã:
systemctl status nginx
Bạn sẽ thấy kết quả sau:
Mã:
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2022-04-29 08:15:28 UTC; 8s ago Docs: man:nginx(8) Process: 19070 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 19071 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 19072 (nginx) Tasks: 3 (limit: 4630) Memory: 3.3M CPU: 63ms CGroup: /system.slice/nginx.service ??19072 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;" ??19073 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ??19074 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
Apr 29 08:15:28 ubuntu systemd[1]: Starting A high performance web server and a reverse proxy server...
Apr 29 08:15:28 ubuntu systemd[1]: Started A high performance web server and a reverse proxy server.

Truy cập Apache Tomcat​

Bây giờ, hãy mở trình duyệt web của bạn và truy cập giao diện web Apache Tomcat bằng URL . Bạn sẽ thấy bảng điều khiển Tomcat trên màn hình sau:


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


Nhấp vào Ứng dụng quản lý. Bạn sẽ được yêu cầu xác thực như hiển thị bên dưới:


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


Cung cấp tên người dùng quản trị và mật khẩu, sau đó nhấp vào nút Đăng nhập. Bạn sẽ thấy bảng điều khiển Ứng dụng quản lý trên màn hình sau:


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


Để truy cập ứng dụng Host Manager, hãy nhấp vào Host Manager. Bạn sẽ thấy màn hình sau:


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


Nhấp vào ServerStatus. Bạn sẽ thấy trạng thái Apache Tomcat trên màn hình sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22371%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 với Nginx làm proxy ngược trên Ubuntu 22.04. Bây giờ bạn có thể tạo và lưu trữ ứng dụng Java đầu tiên của mình bằng Apache Tomcat. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên