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

theanh

Administrator
Nhân viên
Tomcat là một máy chủ ứng dụng miễn phí, mã nguồn mở và nhẹ được sử dụng để triển khai các ứng dụng dựa trên Java. Nó có thể được sử dụng như một máy chủ độc lập hoặc kết hợp với các máy chủ khác như Apache và Nginx. Nó cung cấp chức năng mở rộng để tương tác với Java Servlet và cũng triển khai một số thông số kỹ thuật của nền tảng Java. Hiện tại, Tomcat là một trong những máy chủ ứng dụng được sử dụng rộng rãi nhất cho Java.

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt Tomcat 9 với Nginx trên Debian 10.

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

  • Một máy chủ chạy Debian 10.
  • 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ủa bạn.

Bắt đầu​

Trước khi bắt đầu, bạn nên cập nhật bộ đệm APT lên phiên bản mới nhất. Bạn có thể cập nhật bằng cách chạy lệnh sau:
Mã:
apt-get update -y
Sau khi bộ đệm gói hệ thống của bạn được cập nhật, bạn có thể tiến hành bước tiếp theo.

Cài đặt Java​

Tomcat là ứ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 chưa cài đặt, bạn có thể cài đặt bằng lệnh sau:
Mã:
apt-get 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:
Mã:
java --version
Bạn sẽ nhận được kết quả sau:
Mã:
openjdk 11.0.9.1 2020-11-04Môi trường chạy thời gian OpenJDK (bản dựng 11.0.9.1+1-post-Debian-1deb10u2)Máy ảo máy chủ OpenJDK 64-Bit (bản dựng 11.0.9.1+1-post-Debian-1deb10u2, chế độ hỗn hợp, chia sẻ)
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cài đặt Tomcat​

Trước tiên, bạn sẽ cần tạo một người dùng chuyên dụng để chạy máy chủ Tomcat. Bạn có thể tạo nó bằng lệnh sau:
Mã:
useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Tiếp theo, tải xuống phiên bản Tomcat mới nhất bằng lệnh sau:
Mã:
wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.45/bin/apache-tomcat-9.0.45.tar.gz
Sau khi tải xuống hoàn tất, giải nén tệp đã tải xuống bằng lệnh sau:
Mã:
tar -xvzf apache-tomcat-9.0.45.tar.gz
Tiếp theo, di chuyển thư mục đã giải nén đến /opt bằng lệnh sau:
Mã:
mv apache-tomcat-9.0.45 /opt/tomcat/tomcat
Tiếp theo, thiết lập quyền và quyền sở hữu phù hợp bằng lệnh sau lệnh:
Mã:
chown -R tomcat:tomcat /opt/tomcat/tomcat
chmod -R 755 /opt/tomcat/tomcat
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

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

Tiếp theo, bạn sẽ cần tạo tệp dịch vụ systemd để quản lý dịch vụ Tomcat. 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 9.0 servlet containerAfter=network.target[Service]Type=forkingUser=tomcatGroup=tomcatEnvironment="JAVA_HOME=/usr/lib/jvm/default-java"Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"Environment="CATALINA_BASE=/opt/tomcat/tomcat"Environment="CATALINA_HOME=/opt/tomcat/tomcat"Environment="CATALINA_PID=/opt/tomcat/tomcat/temp/tomcat.pid"Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"ExecStart=/opt/tomcat/tomcat/bin/startup.shExecStop=/opt/tomcat/tomcat/bin/shutdown.sh[Cài đặt]WantedBy=multi-user.target
Lưu và đóng tệp, sau đó tải lại daemon systemd bằng lệnh sau:
Mã:
systemctl daemon-reload
Tiếp theo, 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ũng có thể xác minh trạng thái của Tomcat bằng lệnh sau:
Mã:
systemctl status tomcat
Bạn sẽ nhận được kết quả sau:
Mã:
? tomcat.service - Bộ chứa servlet Tomcat 9.0 Đã tải: đã tải (/etc/systemd/system/tomcat.service; vô hiệu hóa; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ 4, ngày 14 tháng 4 năm 2021 lúc 05:41:21 UTC; 42 giây trước Tiến trình: 5784 ExecStart=/opt/tomcat/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS) PID chính: 5791 (java) Nhiệm vụ: 30 (giới hạn: 4701) Bộ nhớ: 159,1M CGroup: /system.slice/tomcat.service ??5791 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/opt/tomcat/tomcat/conf/logging.properties -Djava.util.log14/04 05:41:21 debian systemd[1]: Đang khởi động bộ chứa servlet Tomcat 9.0...14/04 05:41:21 debian startup.sh[5784]: Đã khởi động Tomcat.14/04 05:41:21 debian systemd[1]: Đã khởi động bộ chứa servlet Tomcat 9.0.
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cấu hình Giao diện Web Tomcat​

Tiếp theo, bạn sẽ cần định nghĩa người dùng để truy cập giao diện web Tomcat. Bạn có thể định nghĩa người dùng đó bằng tệp tomcat-users.xml:
Mã:
nano /opt/tomcat/tomcat/conf/tomcat-users.xml
Tìm phần và thêm hoặc sửa đổi các dòng sau:
Mã:
Lưu và đóng tệp khi bạn hoàn tất.

Theo mặc định, giao diện web Tomcat được cấu hình để chỉ truy cập từ máy chủ cục bộ. Vì vậy, bạn sẽ cần cấu hình nó để truy cập bên ngoài.

Đối với ứng dụng Manager, hãy chỉnh sửa dòng sau:
Mã:
nano /opt/tomcat/tomcat/webapps/manager/META-INF/context.xml
Đối với ứng dụng Host Manager, hãy chỉnh sửa tệp sau:
Mã:
nano /opt/tomcat/tomcat/webapps/host-manager/META-INF/context.xml
Xóa dòng sau:
Mã:
Lưu và đóng tệp, sau đó khởi động lại dịch vụ Tomcat để áp dụng các thay đổi:
Mã:
systemctl restart tomcat
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cấu hình Nginx cho Tomcat​

Tiếp theo, bạn sẽ cần cài đặt và cấu hình Nginx làm proxy ngược cho Tomcat. Trước tiên, hãy cài đặt gói Nginx bằng lệnh sau:
Mã:
apt-get install nginx -y
Sau khi Nginx đã được cài đặt, bạn sẽ cần tạo tệp cấu hình máy chủ ảo Nginx mới cho Tomcat. Bạn có thể tạo tệp này bằng lệnh sau:
Mã:
nano /etc/nginx/conf.d/tomcat.conf
Thêm các dòng sau:
Mã:
server { listen 80; server_name tomcat.example.com; root /opt/tomcat/tomcat/webapps/; vị trí / { 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:
Mã:
nginx -t
Bạn sẽ thấy kết quả sau:
Mã:
nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: kiểm tra tệp cấu hình /etc/nginx/nginx.conf thành công
Tiếp theo, khởi động lại dịch vụ Nginx để áp dụng các thay đổi:
Mã:
systemctl restart nginx
Tiếp theo, xác minh trạng thái của dịch vụ Nginx bằng lệnh sau:
Mã:
systemctl status nginx
Bạn sẽ thấy kết quả sau:
Mã:
? nginx.service - Máy chủ web hiệu suất cao và máy chủ proxy ngược Đã tải: đã tải (/lib/systemd/system/nginx.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ 4, ngày 14 tháng 4 năm 2021 lúc 05:57:03 UTC; 1 phút 38 giây trước Tài liệu: man:nginx(8) Tiến trình: 6852 ExecStartPre=/usr/sbin/nginx -t -q -g daemon đang bật; master_process đang bật; (code=exited, status=0/SUCCESS) Tiến trình: 6853 ExecStart=/usr/sbin/nginx -g daemon đang bật; master_process đang bật; (code=exited, status=0/SUCCESS) PID chính: 6854 (nginx) Nhiệm vụ: 3 (giới hạn: 4701) Bộ nhớ: 4.0M CGroup: /system.slice/nginx.service ??6854 nginx: tiến trình chính /usr/sbin/nginx -g daemon bật; master_process bật; ??6855 nginx: tiến trình công nhân ??6856 nginx: tiến trình công nhân14/04 05:57:03 debian systemd[1]: Đang khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược...14/04 05:57:03 debian systemd[1]: Đã khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược.
Tại thời điểm này, Nginx được cấu hình để truy cập Tomcat. Bây giờ bạn có thể tiến hành bước tiếp theo.

Truy cập Tomcat Web UI​

Bây giờ, hãy mở trình duyệt web của bạn và truy cập Tomcat web UI bằng URL . Bạn sẽ thấy trang sau:



Nhấp vào Ứng dụng Quản lý, bạn sẽ thấy trang sau:



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



Bạn cũng có thể nhấp vào Trình quản lý máy chủ để truy cập Ứng dụng quản lý máy chủ như hiển thị bên dưới:


Kết luận​

Xin chúc mừng! bạn đã cài đặt thành công Tomcat với Nginx làm proxy ngược trên Debian 10. Bây giờ bạn có thể triển khai ứng dụng Java của mình dễ dàng với 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