CyStack logo
  • Sản phẩm & Dịch vụ
  • Giải pháp
  • Bảng giá
  • Công ty
  • Tài liệu
Vi

vi

Trang chủHướng dẫnHướng dẫn cách cài đặt Apache Tomcat 10 trên Ubuntu 20.04

Hướng dẫn cách cài đặt Apache Tomcat 10 trên Ubuntu 20.04

CyStack blog 7 phút để đọc
CyStack blog22/09/2025
Locker Avatar

Chris Pham

Technical Writer

Locker logo social
Reading Time: 7 minutes

Apache Tomcat là một web server và bộ chứa servlet được dùng để chạy các ứng dụng Java. Nó là một phiên bản mã nguồn mở của các công nghệ nền tảng Jakarta Servlet, Jakarta Server Pages, và các công nghệ khác của Jakarta EE.

cài đặt Apache Tomcat 10 trên Ubuntu 20.04

Trong hướng dẫn này, bạn sẽ cài đặt Apache Tomcat 10 trên Ubuntu 20.04. Bạn sẽ cài đặt Tomcat 10, thiết lập người dùng và vai trò, và điều hướng qua giao diện người dùng quản trị.

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

Một máy chủ Ubuntu 20.04 có tài khoản người dùng không phải là root với quyền sudo và đã bật tường lửa.

Bước 1: Cài đặt Tomcat

Ở bước này, bạn sẽ thiết lập Tomcat 10 trên máy chủ của mình. Để bắt đầu, bạn sẽ tải phiên bản mới nhất của nó và thiết lập một người dùng riêng biệt cùng với các quyền hạn thích hợp. Bạn cũng sẽ cài đặt Java Development Kit (JDK).

Vì mục đích bảo mật, Tomcat nên được chạy dưới một người dùng riêng, không có đặc quyền. Chạy lệnh sau để tạo một người dùng có tên là tomcat:

sudo useradd -m -d /opt/tomcat -U -s /bin/false tomcat

Bằng cách cung cấp /bin/false làm shell mặc định của người dùng, bạn đảm bảo rằng không thể đăng nhập với tư cách là Tomcat.

Bây giờ bạn sẽ cài đặt JDK. Đầu tiên, cập nhật bộ nhớ đệm (cache) của trình quản lý gói (package manager) bằng cách chạy:

sudo apt update

Sau đó, cài đặt JDK bằng cách chạy lệnh sau:

sudo apt install default-jdk

Nhấn y khi được yêu cầu để tiếp tục cài đặt.

Khi quá trình cài đặt hoàn tất, kiểm tra phiên bản của bản cài đặt Java hiện có:

java -version

Kết quả đầu ra sẽ tương tự như sau:

Output
openjdk version "11.0.14" 2022-01-18
OpenJDK Runtime Environment (build 11.0.14+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.14+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)

Để cài đặt Tomcat, bạn sẽ cần bản build Core Linux mới nhất cho Tomcat 10, bạn có thể tải từ trang downloads page. Chọn bản build Core Linux mới nhất, kết thúc bằng đuôi .tar.gz. Tại thời điểm viết bài, phiên bản mới nhất là 10.0.20. Đầu tiên, điều hướng đến thư mục /tmp:

cd /tmp

Tải xuống tệp lưu trữ bằng lệnh wget bằng cách chạy lệnh sau:

wget <https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.20/bin/apache-tomcat-10.0.20.tar.gz>

Lệnh wget tải các tài nguyên từ Internet.

Sau đó, giải nén tệp lưu trữ đã tải xuống bằng cách chạy:

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

Vì bạn đã tạo một người dùng, bây giờ bạn có thể cấp quyền sở hữu bản cài đặt đã giải nén cho người dùng Tomcat bằng cách chạy:

sudo chown -R tomcat:tomcat /opt/tomcat/
sudo chmod -R u+x /opt/tomcat/bin

Cả hai lệnh trên đều cập nhật cài đặt của bản cài đặt tomcat của bạn. Để tìm hiểu thêm về các lệnh này và chức năng của chúng, hãy truy cập Linux Permissions Basics and How to Use Umask on a VPS.

Trong bước này, bạn đã cài đặt JDK và Tomcat. Bạn cũng đã tạo một người dùng riêng biệt cho nó và thiết lập quyền hạn trên các tệp nhị phân (binaries) của Tomcat. Bây giờ bạn sẽ cấu hình thông tin đăng nhập để truy cập vào phiên bản Tomcat của mình.

Bước 2: Cấu hình người dùng quản trị

Để truy cập vào các trang Manager và Host Manager, bạn sẽ xác định những người dùng có đặc quyền trong cấu hình của Tomcat. Bạn sẽ cần xóa các hạn chế về địa chỉ IP, vốn không cho phép tất cả các địa chỉ IP bên ngoài truy cập vào các trang đó.

Người dùng Tomcat được xác định trong tệp /opt/tomcat/conf/tomcat-users.xml. Mở tệp để chỉnh sửa bằng lệnh sau:

sudo nano /opt/tomcat/conf/tomcat-users.xml

Thêm các dòng sau vào trước thẻ kết thúc </tomcat-users>:

/opt/tomcat/conf/tomcat-users.xml
<role rolename="manager-gui" />
<user username="manager" password="manager_password" roles="manager-gui" />

<role rolename="admin-gui" />
<user username="admin" password="admin_password" roles="manager-gui,admin-gui" />

Thay thế mật khẩu được đánh dấu bằng mật khẩu của riêng bạn. Khi hoàn tất, lưu và đóng tệp.

Ở đây, bạn xác định hai vai trò người dùng là manager-guiadmin-gui, cho phép truy cập lần lượt vào các trang Manager và Host Manager. Bạn cũng xác định hai người dùng là manageradmin với các vai trò liên quan.

Theo mặc định, Tomcat được cấu hình để hạn chế quyền truy cập vào các trang quản trị, trừ khi kết nối đến từ chính máy chủ. Để truy cập các trang đó bằng các người dùng bạn vừa xác định, bạn sẽ cần chỉnh sửa các tệp cấu hình cho các trang đó.

Để xóa hạn chế cho trang Manager, hãy mở tệp cấu hình của nó để chỉnh sửa:

sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml

Bình luận định nghĩa Valve, như sau:

opt/tomcat/webapps/manager/META-INF/context.xml
...
<Context antiResourceLocking="false" privileged="true" >
  <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                   sameSiteCookies="strict" />
<!--  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\\.\\d+\\.\\d+\\.\\d+|::1|0:0:0:0:0:0:0:1" /> -->
  <Manager sessionAttributeValueClassNameFilter="java\\.lang\\.(?:Boolean|Integer|Long|Number|String)|org\\.apache\\.catalina\\.filters\\.Csr>
</Context>

Lưu và đóng tệp, sau đó lặp lại cho Host Manager:

sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml

Bây giờ bạn đã xác định hai người dùng, manageradmin, mà sau này bạn sẽ sử dụng để truy cập các phần bị hạn chế của giao diện quản lý. Bây giờ bạn sẽ tạo một dịch vụ systemd cho Tomcat.

Bước 3: Tạo một dịch vụ systemd

Dịch vụ systemd mà bạn sẽ tạo bây giờ sẽ giúp Tomcat chạy nền một cách âm thầm. Dịch vụ systemd cũng sẽ tự động khởi động lại Tomcat trong trường hợp xảy ra lỗi hoặc sự cố.

Tomcat, bản thân là một ứng dụng Java, yêu cầu phải có Java runtime, mà bạn đã cài đặt cùng với JDK ở bước 1. Trước khi tạo dịch vụ, bạn cần biết Java được đặt ở đâu. Bạn có thể tra cứu bằng cách chạy lệnh sau:

sudo update-java-alternatives -l

Kết quả đầu ra sẽ tương tự như sau:

Output
java-1.11.0-openjdk-amd64      1111/usr/lib/jvm/java-1.11.0-openjdk-amd64

Ghi lại đường dẫn nơi Java cư trú, được liệt kê trong cột cuối cùng. Bạn sẽ cần đường dẫn này ngay lập tức để xác định dịch vụ.

Bạn sẽ lưu trữ dịch vụ tomcat trong một tệp có tên tomcat.service, bên dưới /etc/systemd/system. Tạo tệp để chỉnh sửa bằng cách chạy:

sudo nano /etc/systemd/system/tomcat.service

Thêm các dòng sau:

/etc/systemd/system/tomcat.service
[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

RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Sửa đổi giá trị của JAVA_HOME được đánh dấu nếu nó khác với giá trị bạn đã ghi lại trước đó.

Ở đây, bạn xác định một dịch vụ sẽ chạy Tomcat bằng cách thực thi các script khởi động và tắt máy mà nó cung cấp. Bạn cũng đặt một vài biến môi trường (environment variables) để xác định thư mục chính của nó (là /opt/tomcat như trước) và giới hạn lượng bộ nhớ mà Java VM có thể cấp phát (trong CATALINA_OPTS). Khi bị lỗi, dịch vụ Tomcat sẽ tự động khởi động lại.

Khi bạn hoàn tất, lưu và đóng tệp.

Tải lại trình nền systemd để nó nhận biết dịch vụ mới:

sudo systemctl daemon-reload

Sau đó, bạn có thể khởi động dịch vụ Tomcat bằng cách gõ:

sudo systemctl start tomcat

Sau đó, hãy xem trạng thái của nó để xác nhận rằng nó đã khởi động thành công:

sudo systemctl status tomcat

Kết quả đầu ra sẽ trông như thế này:

Output
● tomcat.service - Tomcat
     Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-03-11 14:37:10 UTC; 2s ago
    Process: 4845 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
   Main PID: 4860 (java)
      Tasks: 15 (limit: 1132)
     Memory: 90.1M
     CGroup: /system.slice/tomcat.service
             └─4860 /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties ...

Nhấn q để thoát lệnh.

Để cho phép Tomcat khởi động cùng với hệ thống, hãy chạy lệnh sau:

sudo systemctl enable tomcat

Trong bước này, bạn đã xác định vị trí của Java và cho phép systemd chạy Tomcat ở chế độ nền. Bây giờ bạn sẽ truy cập Tomcat thông qua trình duyệt web của mình.

Bước 4: Truy cập Giao diện Web

Bây giờ dịch vụ Tomcat đã chạy, bạn có thể cấu hình tường lửa để cho phép các kết nối đến Tomcat. Sau đó, bạn sẽ có thể truy cập giao diện web của nó.

Tomcat sử dụng cổng 8080 để chấp nhận các yêu cầu HTTP. Chạy lệnh sau để cho phép lưu lượng truy cập đến cổng đó:

sudo ufw allow 8080

Trong trình duyệt của bạn, bây giờ bạn có thể truy cập Tomcat bằng cách điều hướng đến địa chỉ IP của máy chủ của bạn:

http://your_server_ip:8080

Bạn sẽ thấy trang chào mừng Tomcat mặc định:

tomcat 2

Bạn đã xác minh rằng dịch vụ Tomcat đang hoạt động.

Nhấn vào nút Manager App ở bên phải. Bạn sẽ được nhắc nhập thông tin đăng nhập tài khoản mà bạn đã xác định ở bước trước.

Bạn sẽ thấy một trang trông như thế này:

tomcat 3

Web Application Manager được sử dụng để quản lý các ứng dụng Java của bạn. Bạn có thể khởi động, dừng, tải lại, triển khai và gỡ bỏ chúng từ đây. Bạn cũng có thể chạy một số chẩn đoán trên các ứng dụng của mình (ví dụ: để tìm rò rỉ bộ nhớ). Thông tin về máy chủ của bạn có sẵn ở cuối trang này.

Bây giờ, hãy xem Host Manager, có thể truy cập bằng cách nhấn vào nút của nó trên trang chính:

tomcat 4

Tại đây, bạn có thể thêm các virtual hosts để phục vụ các ứng dụng của mình. Hãy nhớ rằng trang này không thể truy cập được bởi những người dùng không có vai trò admin-gui được chỉ định, chẳng hạn như manager.

Kết luận

Bạn đã cài đặt Apache Tomcat 10 trên Ubuntu 20.04 của mình và cấu hình nó để có thể truy cập từ xa bằng các tài khoản quản lý. Bây giờ bạn có thể sử dụng nó để triển khai các ứng dụng Java của mình, dựa trên các công nghệ Jakarta EE. Bạn có thể tìm hiểu thêm về các ứng dụng Java bằng cách truy cập các tài liệu chính thức.

Hiện tại, bản cài đặt Tomcat của bạn đang hoạt động, nhưng lưu lượng truy cập của nó không được mã hóa. Điều này có nghĩa là tất cả dữ liệu, bao gồm cả các mục nhạy cảm như mật khẩu, được gửi dưới dạng văn bản thuần túy có thể bị các bên khác trên internet chặn và đọc.

Để ngăn điều này xảy ra, bạn có thể thêm tên miền vào máy chủ của mình và cài đặt chứng chỉ TLS trên đó với hướng dẫn này về cách bảo mật Tomcat 10 bằng Apache hoặc Nginx.

0 Bình luận

Đăng nhập để thảo luận

Chuyên mục Hướng dẫn

Tổng hợp các bài viết hướng dẫn, nghiên cứu và phân tích chi tiết về kỹ thuật, các xu hướng công nghệ mới nhất dành cho lập trình viên.

Đăng ký nhận bản tin của chúng tôi

Hãy trở thành người nhận được các nội dung hữu ích của CyStack sớm nhất

Xem chính sách của chúng tôi Chính sách bảo mật.

Đăng ký nhận Newsletter

Nhận các nội dung hữu ích mới nhất