Cài đặt Apache Tomcat trên Debian 12 - Install Apache Tomcat on Debian 12

Apache Tomcat, còn được gọi là Tomcat Server, là một máy chủ web mã nguồn mở và một máy chứa servlet được phát triển bởi tổ chức phần mềm Apache. Nó cung cấp một môi trường dựa trên Java để lưu trữ các ứng dụng web Java và phục vụ nội dung web. Bên dưới sẽ là hướng dẫn cách cài đặt Tomcat trên hệ điều hành Debian 12.

Tomcat triển khai các đặc tả Servlet Java, JavaServer Pages (JSP) và Java Expression Language (EL), là một phần của nền tảng Java Enterprise Edition (Java EE). Nó hoạt động như một máy chủ container, nhận yêu cầu từ máy khách, xử lý chúng và tạo ra các phản hồi để gửi lại cho máy khách.

Các lợi ích khi cài đặt Tomcat

  • Nhẹ và hiệu quả: Tomcat nổi tiếng với tính nhẹ và sử dụng tài nguyên hiệu quả. Nó có một diện tích nhỏ và tiêu thụ tài nguyên hệ thống tối thiểu, điều này phù hợp cho môi trường có phần cứng hoặc bộ nhớ hạn chế.
  • Hỗ trợ ứng dụng Web Java: Tomcat được thiết kế đặc biệt để lưu trữ các ứng dụng web Java. Nó triển khai các đặc tả Java Servlet, JavaServer Pages (JSP) và Java Expression Language (EL), cung cấp một nền tảng mạnh mẽ để chạy các ứng dụng web dựa trên Java.
  • Dễ cấu hình và triển khai: Tomcat cung cấp quá trình cấu hình đơn giản và nhiều tùy chọn triển khai khác nhau. Nó hỗ trợ cả triển khai độc lập và tích hợp với các máy chủ web khác như Apache HTTP Server. Sự dễ cấu hình và triển khai giúp tiết kiệm thời gian, công sức cho các nhà phát triển.
  • Tương thích và tuân thủ tiêu chuẩn: Tomcat tuân thủ các tiêu chuẩn web Java và hỗ trợ các đặc tả Java Servlet, JSP và EL mới nhất. Điều này đảm bảo tính tương thích với nhiều khung làm việc và thư viện web Java, giúp việc phát triển và triển khai các ứng dụng web Java trở nên dễ dàng hơn.
  • Khả năng mở rộng và hiệu suất cao: Tomcat cung cấp các tính năng mở rộng để xử lý lưu lượng gia tăng và đáp ứng nhu cầu người dùng tăng lên. Nó hỗ trợ gom cụm và cân bằng tải, cho phép bạn phân phối các yêu cầu đến nhiều phiên bản Tomcat để cải thiện hiệu suất và tính sẵn sàng cao.
  • Tính năng bảo mật: Tomcat bao gồm các biện pháp bảo mật tích hợp để bảo vệ các ứng dụng web và môi trường máy chủ. Nó hỗ trợ mã hóa SSL/TLS, kiểm soát truy cập dựa trên vai trò và các cơ chế xác thực khác nhau, đảm bảo an toàn cho dữ liệu nhạy cảm và ngăn chặn truy cập trái phép.
  • Giám sát và quản lý: Tomcat cung cấp khả năng giám sát và quản lý thông qua các giao diện quản lý của nó, chẳng hạn như Tomcat Manager và JMX (Java Management Extensions). Các giao diện này cho phép quản trị viên theo dõi trạng thái máy chủ, phân tích các số liệu hiệu suất và thực hiện các nhiệm vụ quản lý khác nhau.
  • Khả năng mở rộng và tùy chỉnh: Tomcat có tính mở rộng cao, cho phép bạn thêm các tính năng và chức năng bổ sung thông qua các thành phần tùy chỉnh hoặc các plugin của bên thứ ba. Nó cung cấp một kiến trúc module có thể tùy chỉnh để đáp ứng các yêu cầu cụ thể, tăng cường tính linh hoạt.

Một số ứng dụng phổ biến của Apache Tomcat

  • Lưu trữ ứng dụng web: Tomcat chủ yếu được sử dụng làm máy chủ web và máy chứa servlet để lưu trữ các ứng dụng web Java. Nó cung cấp môi trường chạy cho việc thực thi servlet Java, JavaServer Pages (JSP) và các thành phần web dựa trên Java khác.
  • Phát triển ứng dụng web Java: Tomcat là một công cụ quan trọng cho phát triển ứng dụng web Java. Nhà phát triển có thể sử dụng Tomcat để chạy và kiểm tra các ứng dụng web của họ trong quá trình phát triển. Nó hỗ trợ phát triển nhanh chóng và cho phép dễ dàng gỡ lỗi và sửa lỗi.
  • Triển khai ứng dụng doanh nghiệp: Tomcat thường được sử dụng trong môi trường doanh nghiệp để triển khai và chạy các ứng dụng doanh nghiệp dựa trên Java. Nó cung cấp một nền tảng đáng tin cậy và có khả năng mở rộng để lưu trữ các ứng dụng quan trọng của doanh nghiệp, chẳng hạn như cổng thông tin khách hàng, hệ thống thương mại điện tử, hệ thống quản lý nội dung và nhiều ứng dụng khác.
  • Môi trường kiểm tra và chạy thử: Tomcat thường được sử dụng để tạo môi trường kiểm tra và chạy thử cho các ứng dụng web. Nhà phát triển có thể triển khai các ứng dụng của họ trên máy chủ Tomcat dành riêng cho việc kiểm tra và xác minh các tính năng mới, cập nhật hoặc sửa lỗi trước khi triển khai chúng vào môi trường sản xuất.
  • Giáo dục và học tập: Tomcat được sử dụng rộng rãi trong các cài đặt giáo dục và các chương trình đào tạo để dạy học phát triển web Java. Sự đơn giản và sự phổ biến làm cho nó trở thành lựa chọn lý tưởng để giới thiệu sinh viên, người mới học về các khái niệm của phát triển ứng dụng web bằng Java.
  • Phát triển và tạo nguyên mẫu: Tính nhẹ và dễ sử dụng của Tomcat làm cho nó phù hợp cho việc tạo các ứng dụng web mới hoặc phát triển các dự án chứng minh khái niệm. Nó cho phép nhà phát triển nhanh chóng thiết lập môi trường phát triển và kiểm tra ý tưởng của họ mà không cần đầu tư vào cơ sở hạ tầng phức tạp.
  • Ứng dụng Intranet: Tomcat có thể được sử dụng để lưu trữ các ứng dụng web nội bộ cho tổ chức. Các ứng dụng này có thể bao gồm cổng thông tin cho nhân viên, hệ thống quản lý tài liệu, công cụ cộng tác và các tài nguyên nội bộ khác yêu cầu truy cập web trong mạng nội bộ của tổ chức.
  • Tích hợp với các công nghệ khác: Tomcat có thể tích hợp với các công nghệ và khung làm việc khác để xây dựng các giải pháp web toàn diện. Ví dụ, nó có thể làm việc cùng với Apache HTTP Server như một trình cân bằng tải hoặc máy chủ proxy ngược. Nó cũng có thể được sử dụng cùng với Spring Framework, Hibernate hoặc các khung làm việc Java khác để phát triển các ứng dụng web phức tạp.
  • Lưu trữ Microservices: Tomcat thường được sử dụng để lưu trữ các dịch vụ micro viết bằng Java. Microservices là các dịch vụ nhỏ, có khả năng triển khai độc lập làm việc cùng nhau để xây dựng một ứng dụng lớn hơn. Tính nhẹ và khả năng hỗ trợ Java của Tomcat làm cho nó phù hợp để lưu trữ và quản lý kiến trúc microservices.

Trong hướng dẫn này, chúng ta sẽ hướng dẫn cách cài đặt Apache Tomcat trên Debian 12 (Bookworm).

Cài đặt Tomcat trên Debian 12 (Bookworm)

Hãy tuân theo các bước dưới đây trong phần này để cài đặt Tomcat thành công trên Debian 12 (Bookworm).

Bước 1: Cài đặt Java trên Debian 12 (Bookworm)

Để chạy mã ứng dụng web Java, Tomcat phải có Java được cài đặt. Bằng lệnh sau, chúng ta sẽ cài đặt Java OpenJDK:

sudo apt update
sudo apt install openjdk-17-jdk

Sau khi cài đặt, hãy xác minh cài đặt của nó.

$ java -version
openjdk version "17.0.7" 2023-04-18
OpenJDK Runtime Environment (build 17.0.7+7-Debian-1deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.7+7-Debian-1deb12u1, mixed mode, sharing)

Bước 2: Tạo người dùng Tomcat

Tomcat nên được chạy dưới dạng người dùng không đặc quyền để cải thiện bảo mật. Để bắt đầu, hãy chạy lệnh sau để tạo người dùng và nhóm Tomcat:

sudo groupadd tomcat
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

Người dùng được đề cập ở trên cũng đã được thêm vào nhóm Tomcat.

Bước 3: Tải xuống kho lưu trữ Tomcat

Trên trang web chính thức của Tomcat, bạn có thể tải phiên bản cần thiết. Tải tệp tar.gz từ phần core của trang web. Bạn cũng có thể sử dụng wget để tải tệp.

Đối với Tomcat 10:

cd /tmp
VER="10.1.9"
rm -f apache-tomcat-*.tar.gz 
wget https://archive.apache.org/dist/tomcat/tomcat-10/v${VER}/bin/apache-tomcat-${VER}.tar.gz

Đối với Tomcat 9:

cd /tmp
rm -f apache-tomcat-*.tar.gz 
VER="9.0.79"
wget https://archive.apache.org/dist/tomcat/tomcat-9/v${VER}/bin/apache-tomcat-${VER}.tar.gz

Tạo một thư mục có tên /opt/tomcat và giải nén tệp:

sudo mkdir /opt/tomcat
sudo tar xzvf apache-tomcat-*.tar.gz -C /opt/tomcat --strip-components=1

Bước 4: Đặt quyền cần thiết cho thư mục Tomcat

Chúng ta sẽ vào thư mục và đặt các quyền cần thiết.

cd /opt/tomcat

Cho phép nhóm Tomcat sở hữu toàn bộ thư mục.

sudo chgrp -R tomcat /opt/tomcat

Cung cấp quyền đọc, ghi và thực thi cho thư mục conf.

sudo chmod -R g+r conf
sudo chmod g+x conf

Chuyển quyền sở hữu của người dùng Tomcat cho các thư mục webapps, work, logs và temp.

sudo chown -R tomcat webapps/ work/ temp/ logs/

Bước 5: Tạo một tệp dịch vụ systemd cho Tomcat

Để xử lý dịch vụ như các dịch vụ hệ thống khác, chúng ta phải tạo một tệp dịch vụ hệ thống cho Tomcat. Đầu tiên, xác định biến JAVA_HOME.

$ sudo update-java-alternatives -l
java-1.17.0-openjdk-amd64 1711 /usr/lib/jvm/java-1.17.0-openjdk-amd64

Tạo tệp dịch vụ. Thay thế JAVA_HOME và các phân bổ bộ nhớ trong CATALINA_OPTS bằng các dòng sau nếu cần:

$ sudo vim /etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/default-java
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

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

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Lưu và thoát khỏi tệp.

Tiếp theo là nạp lại và khởi động lại Tomcat.

sudo systemctl daemon-reload
sudo systemctl enable --now tomcat

Xác minh trạng thái, Tomcat nên đang chạy như được hiển thị dưới đây.

$ systemctl status tomcat
● tomcat.service - Apache Tomcat Web Application Container
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; pres>
Active: active (running) since Wed 2023-06-28 08:39:18 EAT; 8s ago
Process: 4054 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, s>
Main PID: 4061 (java)
Tasks: 31 (limit: 4623)
Memory: 146.7M
CPU: 2.613s
CGroup: /system.slice/tomcat.service
└─4061 /usr/lib/jvm/java-1.17.0-openjdk-amd64/bin/java -D>

Jun 28 08:39:18 debian systemd[1]: Starting tomcat.service - Apache To>
Jun 28 08:39:18 debian startup.sh[4054]: Tomcat started.
Jun 28 08:39:18 debian systemd[1]: Started tomcat.service - Apache Tom>

Bước 6: Bảo mật giao diện quản trị Tomcat Web

Nếu bạn cố gắng truy cập giao diện quản trị vào thời điểm này, bạn sẽ nhận được lỗi "403 Access Denied on Tomcat 10/9/8 error".

Chúng ta sẽ chỉnh sửa tệp cấu hình người dùng: Truy cập vào manager-gui và admin-gui sẽ được mở rộng. Bạn có thể thực hiện điều này bằng cách chèn các dòng sau đây giữa các thẻ tomcat-users.

$ sudo vim /opt/tomcat/conf/tomcat-users.xml
<tomcat-users> 
...........

<role rolename="admin"/>
<role rolename="admin-gui"/>
<role rolename="manager"/>
<role rolename="manager-gui"/>

<user username="admin" password="YourPassword" roles="admin,admin-gui,manager,manager-gui"/>

</tomcat-users>

Một người dùng mới có tên "admin" với mật khẩu "YourPassword" đã được thêm vào.

Bước 7: Bật cho phép truy cập từ xa vào Tomcat và Host Manager

Bây giờ, hãy bật truy cập từ xa cho host-manager và Tomcat của bạn. Có hai phương pháp để thực hiện điều này.

  • Phương pháp 1: Chỉnh sửa các tệp Context của Tomcat
  • Phương pháp 2: Sử dụng Reverse proxy

Phương pháp 1: Chỉnh sửa các tệp Context của Tomcat

Bằng cách thay đổi các tệp Context, bạn có thể bật truy cập từ xa.

  • Đối với Tomcat Manager:

Hủy bỏ chú thích dòng dưới đây và thêm các ký hiệu <! - và -> vào tệp. Dòng nên xuất hiện như đã chỉ định.

$ sudo vim /opt/tomcat/webapps/manager/META-INF/context.xml
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
  • Đối với Host manager:

Thực hiện như tệp trên nhé.

$ sudo vim /opt/tomcat/webapps/host-manager/META-INF/context.xml
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->

Khởi động lại dịch vụ sau khi lưu các thay đổi.

sudo systemctl restart tomcat

Phương pháp 2: Sử dụng Reverse proxy

Tomcat có thể được cấu hình để cung cấp truy cập từ xa bằng cách sử dụng Reverse proxy như Nginx. Trước tiên, bạn cần cài đặt Nginx:

sudo apt install nginx

Tạo một tệp ảo máy chủ cho Tomcat bằng cách thêm các dòng sau đây.

$ sudo vim /etc/nginx/conf.d/tomcat.conf
server {
listen 80;
server_name tomcat.test.com;

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/;
}
}

Do đó, khởi động lại Nginx:

sudo systemctl restart nginx

Bước 8: Truy cập giao diện web của Tomcat

Bây giờ khi Tomcat đã được thiết lập đúng cách, bạn có thể truy cập nó từ xa. Tuy nhiên, còn một bước cuối cùng để thực hiện. Nếu bạn đang sử dụng tường lửa UFW, hãy xem xét mở cổng 8080, đây là cổng tiêu chuẩn mà Apache Tomcat lắng nghe.

sudo ufw allow 8080
sudo ufw reload

Khi bạn đã cấu hình như đã nêu ở trên, bạn có thể truy cập giao diện web của Tomcat bằng URL sau: http://địa_chỉ_IP:8080 nếu bạn sử dụng tệp cấu hình ngữ cảnh (context files). Hoặc là http://tên_miền nếu bạn sử dụng Nginx reverse proxy.

Cài đặt Tomcat trên Debian 12 - Install Apache Tomcat Debian 12

Nhấp vào 'Server status' để truy cập trang 'Server Status'. Để nhập thông tin đăng nhập, một cửa sổ pop-up sẽ xuất hiện. Hãy cung cấp thông tin đăng nhập Admin ở Bước 6 và nhấn "Sign In".

Cài đặt Tomcat trên Debian 12 - Install Apache Tomcat Debian 12

Bạn sẽ nhập vào cửa sổ dưới đây.

Cài đặt Tomcat trên Debian 12 - Install Apache Tomcat Debian 12

Đối với quản lý ứng dụng web.

Cài đặt Tomcat trên Debian 12 - Install Apache Tomcat Debian 12

Đối với Virtual Host Manager.

Cài đặt Tomcat trên Debian 12 - Install Apache Tomcat Debian 12

Bước 9: Lưu trữ ứng dụng trên Tomcat

Trong hướng dẫn này, chúng ta sẽ sử dụng một tệp .war để triển khai ứng dụng web Hello World đơn giản. Tệp này cần được tải xuống và đặt trong thư mục CATALINA_HOME/webapps như đã chỉ định.

cd ~/
wget https://tomcat.apache.org/tomcat-7.0-doc/appdev/sample/sample.war
sudo mv sample.war /opt/tomcat/webapps

Sử dụng URL http://địa_chỉ_IP:8080/sample để truy cập ứng dụng web cho các tệp context hoặc http://tên_miền/sample để xem nó thông qua Nginx.

Cài đặt Tomcat trên Debian 12 - Install Apache Tomcat Debian 12

Tóm lại, Apache Tomcat 10 và 9 cung cấp các giải pháp đáng tin cậy, có khả năng mở rộng và hiệu quả để lưu trữ các ứng dụng web Java. Sự tương thích, tính nhẹ nhàng, bộ tính năng phong phú và sự hỗ trợ mạnh mẽ từ cộng đồng đã làm cho chúng trở thành sự lựa chọn ưa thích của các nhà phát triển và tổ chức đang tìm kiếm một máy chủ web Java và môi trường chứa servlet mạnh mẽ.

Mọi người cũng tìm kiếm: debian 12 tomcat, cài đặt tomcat, tomcat enterprise, debian 12 install tomcat, debian 12 install java.