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.
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).
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).
Để 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)
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.
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
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/
Để 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>
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â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.
Bằng cách thay đổi các tệp Context, bạn có thể bật truy cập từ xa.
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" /> -->
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
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â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.
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".
Bạn sẽ nhập vào cửa sổ dưới đây.
Đối với quản lý ứng dụng web.
Đối với Virtual Host Manager.
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.
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.
Tips: Tham gia Channel Telegram KDATA để không bỏ sót khuyến mãi hot nào