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

Apache Tomcat là một máy chủ mã nguồn mở dành cho Java servlet và Java Server Page. Nó đã cho phép các nhà phát triển xây dựng và triển khai các ứng dụng Java động. Servlet Java là các chương trình Java nhỏ xác định cách máy chủ xử lý các yêu cầu và phản hồi. Các nhà phát triển viết các servlet, trong khi Tomcat xử lý tất cả công việc phía sau và định tuyến. Với việc là mã nguồn mở, Apache Tomcat được đóng góp bởi các nhà phát triển từ khắp nơi trên thế giới. Dưới đây sẽ là hướng dẫn cách install Apache Tomcat CentOS 7.

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

Apache Tomcat 10 là phiên bản mới nhất, các ứng dụng chạy trên phiên bản 9 hoặc cũ hơn cần phải thay đổi để có thể chạy trên phiên bản 10. Một số thay đổi được thực hiện trong phiên bản 10 bao gồm:

  • Tái cấu trúc bảo vệ overhead của HTTP/2 để giảm khả năng xảy ra các kết quả xác nhận sai.
  • Cập nhật phiên bản trình biên dịch Eclipse JDT lên 4.20.
  • Khắc phục các lỗi hồi quy trong việc biên dịch JSP trong phiên bản trước đó.

Install Apache Tomcat CentOS 7

Việc cài đặt Apache Tomcat đòi hỏi một số bước như đã được thảo luận dưới đây:

Bước 1: Update hệ thống

Luôn luôn chạy cập nhật gói trên máy chủ của bạn để đảm bảo rằng bạn có các gói mới nhất trong quá trình 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ằng các lệnh dưới đây:

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

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

sudo reboot

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

Chúng ta cần cài đặt môi trường thực thi OpenJDK như dưới đây. Ở đây sẽ cài đặt phiên bản 11 nhưng bạn cũng có thể lựa chọn cài đặt phiên bản 8. Đối với những nhà phát triển, họ có thể chọn môi trường phát triển.

# 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 là người dùng root, chỉ được truy cập vào Tomcat và không được sử dụng cho mục đích khác. Chúng ta cũng cần một thư mục để đặt 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 7

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

Sử dụng lệnh wget để tải về tệp nhị phân của Apache Tomcat như sau.

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

Giải nén tệp lưu trữ và sao chép các tệp đã giải nén vào thư mục tomcat đã được 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

Chúng ta cần cho phép người dùng tomcat đọc các tệp trong thư mục tomcat. Đồng thời cũng cần cho phép các tập lệnh trong thư mục 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 để khởi động và dừng Apache Tomcat. Điều này cũng rất hữu ích để tự động khởi động tomcat khi hệ thống khởi động lại. Chúng ta cần truyền vị trí cài đặt Java như một biến trong tệp systemd. Để lấy đường dẫn, chạy lệnh dưới đây:

$ 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

Tiến hành tạo tệp dịch vụ Apache Tomcat.

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

Dán nội dung sau đây:

[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

Bây giờ chúng ta đã có tệp dịch vụ, bạn có thể dễ dàng khởi động và kích hoạt Apache Tomcat để tự động khởi động 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 chạy.

systemctl status status tomcat

Kết quả đầu ra dưới đây cho thấy rằng nó đang chạy.

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

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

Apache Tomcat có thể được quản lý hoàn toàn từ giao diện web. Chúng ta cần tạo một người dùng và mật khẩu để truy cập 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 cho phép Tomcat có thể truy cập từ xa cả cho ứng dụng quản lý và quản lý máy chủ. Theo mặc định, Tomcat chỉ có thể truy cập từ máy cục bộ.

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

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

Nhập địa chỉ IP từ xa để truy cập vào Tomcat, được tách ra bằng dấu gạch đứng (|). Trong trường hợp của bạn, đị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 có một tường lửa đang hoạt động, bạn cần mở cổng Tomcat trên tường lửa.

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

Tại điểm này, bạn đã cài đặt thành công Apache Tomcat và bạn có thể kiểm tra từ trình duyệt bằng đường dẫn http://<your-server-ip>:8080. Bạn sẽ thấy trang như dưới đây mở ra:

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

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ẽ sử dụng máy chủ web Nginx để truy cập ứng dụng Apache Tomcat.

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

Chúng ta bắt đầu bằng cách cài đặt Nginx.

sudo dnf install -y nginx

Sau đó, bắt đầu 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 như sau:

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

Thêm nội dung sau vào tệp cấu hình Virtual Host:

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 của bạn.

sudo nginx -t

Khởi động lại Nginx.

sudo systemctl restart nginx

Bây giờ hãy truy cập Apache Tomcat bằng trình duyệt sử dụng tên máy chủ của bạn. Trong trường hợp của này, địa chỉ là http://example.com.

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

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

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

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ây giờ bạn đã sẵn sà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 CentOS 7 thành công.

Mọi người cũng tìm kiếm: install tomcat centos 7, add tomcat user, openjdk install centos