Cài đặt Apache Tomcat trên CentOS 8 - Install Apache Tomcat CentOS 8

Apache Tomcat là một máy chủ ứng dụng mã nguồn mở chuyên dành cho việc chạy các ứng dụng Java Servlet và Java Server Pages (JSP). Nó cung cấp môi trường cho các nhà phát triển xây dựng và triển khai các ứng dụng web Java động. Trong Tomcat, các Servlet Java là những thành phần chính quyết định cách máy chủ xử lý các yêu cầu và tạo phản hồi cho người dùng. Các nhà phát triển tạo ra các Servlet này, trong khi Tomcat đảm nhiệm việc quản lý và xử lý chúng. Với tính chất mã nguồn mở, Apache Tomcat nhận đóng góp từ cộng đồng phát triển trên toàn thế giới, tạo nên một sản phẩm phát triển liên tục và mạnh mẽ. Dưới đây, chúng ta sẽ đi qua hướng dẫn cách install Apache Tomcat trên CentOS 8.

Các tính năng của Apache Tomcat 10

Apache Tomcat 10 là phiên bản mới nhất của Tomcat, và việc chuyển đổi các ứng dụng từ phiên bản 9 hoặc thấp hơn lên phiên bản 10 có thể đòi hỏi một số thay đổi cần được thực hiện. Các cải tiến trong phiên bản 10 bao gồm:

  • Tối ưu hóa giao thức HTTP/2: Phiên bản mới đã tái cấu trúc bảo vệ để giảm bớt tải trọng không cần thiết trong việc sử dụng HTTP/2. Điều này giúp giảm khả năng xảy ra các lỗi xác nhận sai trong quá trình truyền tải dữ liệu.
  • Cập nhật Eclipse JDT: Tomcat 10 đã cập nhật phiên bản trình biên dịch Eclipse JDT lên 4.20 để hỗ trợ các tính năng và cải tiến mới nhất trong ngôn ngữ Java.
  • Khắc phục lỗi biên dịch JSP: Phiên bản trước đó có một số lỗi hồi quy trong quá trình biên dịch JSP. Apache Tomcat 10 đã khắc phục các lỗi này để đảm bảo tính ổn định và hiệu suất tốt hơn.

Những thay đổi này giúp cải thiện khả năng hoạt động và hiệu suất của Apache Tomcat 10 và việc nâng cấp lên phiên bản mới này có thể giúp ứng dụng của bạn hoạt động tốt hơn, an toàn hơn.

Install Apache Tomcat CentOS 8

Các bước install Apache Tomcat CentOS 8 sẽ được trình bày như dưới đây:

Bước 1: Cập nhật hệ thống

Hãy luôn duy trì máy chủ hoạt động ổn định bằng cách thường xuyên cập nhật các gói phần mềm. Điều này đảm bảo rằng bạn luôn có phiên bản mới nhất của các gói phần mềm khi thực hiện cài đặt.

sudo dnf -y update

Bước 2: Cài đặt Hostname và Hosts File

Để thiết lập tên máy chủ và cấu hình tệp hosts, bạn có thể sử dụng các lệnh sau:

$ sudo hostnamectl set-hostname tomcat.example.com
$ sudo vim /etc/hosts
192.168.50.3 tomcat.example.com

Tiếp đến, để các thay đổi trên có hiệu lực, bạn thực hiện khởi động lại.

sudo reboot

Bước 3: Cài đặt OpenJDK trên CentOS 8

Để chuẩn bị môi trường thực thi Java (OpenJDK), hãy thực hiện các bước sau. Chúng ta sẽ cài đặt phiên bản 11 của OpenJDK, nhưng bạn cũng có thể chọn cài đặt phiên bản 8 nếu cần. Đối với các nhà phát triển, họ xem xét cài đặt môi trường phát triển Java.

# OpenJDK 11
sudo dnf -y install java-11-openjdk java-11-openjdk-devel

# OpenJDK 8
sudo dnf install java-1.8.0-openjdk java-1.8.0-openjdk-devel

Bước 4: Tạo một người dùng không phải là người dùng root và một thư mục cho Tomcat

Chúng ta cần tạo một người dùng không phải root, với quyền truy cập chỉ định vào Tomcat và không cho phép sử dụng cho mục đích khác. Đồng thời, chúng ta cũng cần tạo một thư mục để lưu trữ các tệp của Tomcat.

# Add Tomcat group
sudo groupadd tomcat

# Create Tomcat directory
sudo mkdir /opt/tomcat

# Create tomcat user, disable login and give rights
sudo useradd -s /bin/nologin -g tomcat -d /opt/tomcat tomcat

Bước 5: Tải xuống Tomcat 10 trên CentOS 8

Hãy truy cập trang web chính thức của Apache Tomcat để tải về phiên bản mới nhất. Khi bạn đã truy cập trang này, nhấp chuột phải vào tệp .tar.gz và sao chép địa chỉ liên kết để tải về.

Dùng lệnh wget để tải về tệp nhị phân của Apache Tomcat:

sudo dnf install wget
VER="10.0.22"
wget https://archive.apache.org/dist/tomcat/tomcat-10/v${VER}/bin/apache-tomcat-${VER}.tar.gz

Hãy giải nén tệp lưu trữ, sau đó sao chép các tệp đã được giải nén vào thư mục "tomcat" mà bạn đã tạo trước đó.

sudo mkdir -p /opt/tomcat
sudo tar -xvf apache-tomcat-${VER}.tar.gz -C /opt/tomcat --strip-components=1

Bước 6: Thiết lập quyền truy cập cho các thư mục của Tomcat

Hãy cấp quyền cho người dùng "tomcat" để có thể đọc các tệp trong thư mục "tomcat" và cho phép các tập lệnh trong thư mục này có khả năng thực thi.

sudo chown -R tomcat: /opt/tomcat
sudo sh -c 'chmod +x /opt/tomcat/bin/*.sh'

Bước 7: Tạo tệp hệ thống Systemd cho Apache Tomcat

Chúng ta có thể tạo một tệp systemd để quản lý việc khởi động và dừng Apache Tomcat. Điều này đặc biệt hữu ích để nó tự khởi động Tomcat khi hệ thống khởi động lại. Để lấy đường dẫn đến cài đặt Java, bạn có thể thực hiện lệnh sau:

$ sudo alternatives --list | grep ^java
java auto /usr/lib/jvm/java-11-openjdk-11.0.15.0.10-2.el8_6.x86_64/bin/java
javac auto /usr/lib/jvm/java-11-openjdk-11.0.15.0.10-2.el8_6.x86_64/bin/javac
java_sdk_openjdk auto /usr/lib/jvm/java-11-openjdk-11.0.15.0.10-2.el8_6.x86_64
java_sdk_11 auto /usr/lib/jvm/java-11-openjdk-11.0.15.0.10-2.el8_6.x86_64
java_sdk_11_openjdk auto /usr/lib/jvm/java-11-openjdk-11.0.15.0.10-2.el8_6.x86_64

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

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

Sau đó, dán nội dung bên dưới:

[Unit]
Description=Apache Tomcat Web Application Container
Wants=network.target
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/jre

Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1G -Djava.net.preferIPv4Stack=true'
Environment='JAVA_OPTS=-Djava.awt.headless=true'

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

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

[Install]
WantedBy=multi-user.target

Bước 8: Khởi động và kích hoạt dịch vụ Tomcat

Với tệp dịch vụ đã được tạo, bạn có thể dễ dàng khởi động và kích hoạt Apache Tomcat để tự động chạy khi hệ thống được khởi động lại.

sudo systemctl daemon-reload
sudo systemctl start tomcat
sudo systemctl enable tomcat

Xác nhận trạng thái của Tomcat để đảm bảo rằng nó đang thật sự hoạt động.

systemctl status status tomcat

Nếu bạn nhìn thấy đầu ra dưới đây thì chứng tỏ nó đang chạy.

Cài Apache Tomcat CentOS 8 - Install Apache Tomcat CentOS 8

Bước 9: Cấu hình quản lý Web của Tomcat

Để quản lý Apache Tomcat hoàn toàn thông qua giao diện web, bạn cần tạo một tài khoản người dùng và đặt mật khẩu để có quyền truy cập vào trang quản lý web như sau:

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

Thêm các dòng được đánh dấu vào giữa thẻ <tomcat-users> để có dạng như sau:

<tomcat-users
...
<!--
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="must-be-changed" roles="tomcat"/>
<user username="both" password="must-be-changed" roles="tomcat,role1"/>
<user username="role1" password="must-be-changed" roles="role1"/>
-->
<role rolename="admin-gui"/>
<user username="admin" password="MyAdminPassword" roles="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="MyManagerPassword" roles="manager-gui"/>
</tomcat-users>


Chúng ta cũng cần cấu hình Apache Tomcat để cho phép truy cập từ xa, bao gồm truy cập vào giao diện quản lý và quản lý máy chủ. Theo mặc định, Tomcat chỉ cho phép truy cập từ máy chủ cục bộ.

Đối với kết nối đến manager:

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

Hãy nhập địa chỉ IP từ xa để truy cập vào Apache Tomcat, bạn có thể tách chúng ra bằng dấu gạch đứng (|). Trong ví dụ này, địa chỉ IP từ xa là 192.168.50.2.

...
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.50.2" />
...
</Context>

Đối với Host Manager:

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

Thêm địa chỉ IP từ xa:

...
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.50.2" />
...
</Context>

Bước 10: Cho phép Apache Tomcat thông qua tường lửa

Nếu bạn đang sử dụng tường lửa, hãy đảm bảo mở cổng của Apache Tomcat trên tường lửa.

sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload

Bây giờ, sau khi bạn đã hoàn tất quá trình install Apache Tomcat CentOS thành công, bạn có thể kiểm tra nó từ trình duyệt bằng cách sử dụng đường dẫn http://<địa-chỉ-ip-của-bạn>:8080. Khi truy cập, bạn sẽ thấy trang web dưới đây xuất hiện:

Cài Apache Tomcat CentOS 8 - Install Apache Tomcat CentOS 8

Bước 11: Cấu hình Nginx như một Reverse Proxy cho Apache Tomcat

Trong quá trình cài đặt, chúng ta sẽ dùng máy chủ web Nginx để truy cập ứng dụng Tomcat.

Cài đặt Nginx trên CentOS 8

Trước tiên, cài đặt Nginx như sau:

sudo dnf install -y nginx

Tiếp đến, khởi động và kích hoạt Nginx:

sudo systemctl start nginx
sudo systemctl enable nginx

Tạo Virtual Host Nginx cho Apache Tomcat

Tạo tệp cấu hình Virtual Host:

sudo vim /etc/nginx/conf.d/tomcat.conf

Trong tệp cấu hình Virtual Host hãy thêm nội dung sau:

server {
listen 80;
server_name tomcat.example.com;
root /opt/tomcat/webapps/;


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

Kiểm tra cấu hình Nginx.

sudo nginx -t

Khởi động lại Nginx.

sudo systemctl restart nginx

Giờ hãy mở trình duyệt và truy cập Apache Tomcat bằng tên máy chủ của bạn. Trong ví dụ này, địa chỉ sẽ là http://example.com.

Cài Apache Tomcat CentOS 8 - Install Apache Tomcat CentOS 8

Nếu bạn chọn "Server Status" hoặc "Manager App," bạn sẽ được yêu cầu cung cấp tên người dùng và mật khẩu để truy cập vào chúng.

Cài Apache Tomcat CentOS 8 - Install Apache Tomcat CentOS 8

Khi bạn nhập tên người dùng và mật khẩu Admin hoặc Manager mà bạn đã cấu hình trong tệp tomcat-users.xml, bạn sẽ có khả năng sử dụng giao diện web của Apache Tomcat. Đó là tất cả hướng dẫn, bạn đã install Apache Tomcat trên CentOS 8 thành công.

Mọi người cũng tìm kiếm: install tomcat centos 8, tomcat 10, apache tomcat 10.