Cài đặt Tomcat 9 trên Ubuntu 20.04

Share and Enjoy !

Shares

Apache Tomcat là một web server mã nguồn mở được phát triển bởi tập đoàn Apache. Tomcat không phải là một web server đa dụng như Apache hoặc Nginx, mục đích chính của nó là cung cấp một môi trường dùng để thực thi các ứng dụng thuần Java, Java Servlet và JavaServer Pages.

Trong bài viết trước, mình đã chia sẻ những bước cài đặt và cấu hình cơ bản Tomcat 9 trên nền tảng hệ điều hành CentOS 7. Tuy nhiên, với một đòn đau từ Red Hat (ngưng hỗ trợ CentOS 7 đến hết 30/6/2024 và CentOS 8 đến hết năm 2021) nhằm mục đích ép một lượng lớn người dùng chuyển sang bản OS trên nền tảng cloud (bản quyền).

Do đó, trong nội dung bài viết này, mình sẽ tiếp tục hướng dẫn triển khai Tomcat 9 trên Ubuntu 20.04 để các bạn có phương án chuyển đổi cho hệ thống web server hiện tại.

Cài đặt và cấu hình Tomcat service

Bước 1 – Cài đặt Java

Tomcat 9 yêu cầu Java SE 8 (hoặc cao hơn) phải được cài đặt trên CentOS. Bạn có thể cài đặt Java từ kho lưu trữ gói mặc định bằng lệnh yum  như sau:

$ sudo apt update
$ sudo apt install default-jdk -y

Sau khi quá trình cài đặt hoàn tất, bạn có thể kiểm tra lại phiên bản Java bằng lệnh bên dưới:

# java -version

Bước 2 – Tạo Tomcat System User

Vì lý do bảo mật, Tomcat nên được thực thi bởi một user được cấp quyền riêng (không phải user root). Chúng ta sẽ tạo một user  và group để thực thi Tomcat.

Đầu tiên, bạn tạo group bằng lệnh

$ groupadd tomcat

Sau đó, tạo một user tomcat (là thành viên của group tomcat) với thư mục home /opt/tomcat (thư mục cài đặt Tomcat ở bước sau) và tắt quyền truy cập vào server:

$ useradd -M -s /bin/nologin -g tomcat -d /opt/tomcat tomcat

Bước 3 – Download Tomcat

Bạn có thể sử dụng lệnh wget như sau để tải về phiên bản tomcat 9 mới nhất

$ wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.31/bin/apache-tomcat-9.0.31.tar.gz

Tiếp theo, bạn tiến hành giải nén file .tar.gz vào thư mục cài đăt Tomcat (/opt/tomcat) bằng lệnh sau:

$ tar -xzvf apache-tomcat-9.0.31.tar.gz -C /opt/tomcat --strip-components=1

Bước 4 – Cập nhật quyền thực thi

Để user tomcat có thể truy cập vào thư mục cài đặt Tomcat, bạn lần lượt thiết lập quyền như sau:

– Gán quyền sỡ hữu thư mục cài đặt Tomcat cho group tomcat

$ cd /opt/tomcat 
$ chgrp -R tomcat /opt/tomcat

– Kế tiếp, thiết lập quyền đọc và thực thi thư mục conf (và tất cả nội dung con bên trong) cho group tomcat.

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

Sau cùng, bạn gán user tomcat sở hữu các thư mục webapps, work, temp và logs như sau

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

Bước 5 – Tạo file Systemd Unit cho Tomcat

Để Tomcat hoạt động như một dịch vụ trên CentOS 7, bạn cần tạo mới một file Tomcat Systemd unit.

Tạo và mở file unit bằng lệnh sau:

$ vi /etc/systemd/system/tomcat.service

Thêm nội dung bên dưới vào file.

$ Systemd unit file for tomcat
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target 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_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=/bin/kill -15 $MAINPID

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

[Install]
WantedBy=multi-user.target

Tiếp theo, bạn thực thi lệnh sau để khởi động lại Systemd để nhận file Tomat unit

$ systemctl daemon-reload

Sau cùng, bạn lần lượt thực thi những lệnh sau để khởi động, bật chế độ chạy nền và kiểm tra trạng thái của Tomcat.

$ systemctl start tomcat
$ systemctl enable tomcat
$ systemctl status tomcat

Cấu hình giao diện web quản trị Tomcat 

1. Cấu hình

Sau khi hoàn tât các bước cài đặt và cấu hình cơ bản, bạn đã có thể truy cập trang Tomcat mặc định như trên. Tuy nhiên, vì lý do bảo mật nên bạn cần tạo thêm user để có thể truy cập trang quản trị Tomcat manager.

User Tomcat và các quyền sẽ được định nghĩa trong file tomcat-users.xml. Bạn mở file /opt/tomcat/latest/conf/tomcat-users.xml, tìm và thêm nội dung bên dưới vào bên trong thẻ <tomcat-users>…</tomcat-users>

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

Lưu ý:

  • rolename=”admin-gui” và “manager-gui” lần lượt các quyền truy cập vào trang quản trị Tomcat và trang quản lý webapps.
  • Thay đổi các giá trị username và password tương ứng với hệ thống của bạn.

Theo mặc định, giao diện quản trị Tomcat chỉ cho phép truy cập từ localhost, để có thể truy cập từ một remote IP hoặc bất kỳ đâu, bạn thực hiện những điều chỉnh như sau:

Lần lượt mở các file /opt/tomcat/webapps/manager/META-INF/context.xml và /opt/tomcat/webapps/host-manager/META-INF/context.xml, khóa hoặc xóa bỏ nội dung bên dưới trong thẻ <Context>…</Context>

Khởi động lại Tomcat để những điều chỉnh có tác dụng bằng lệnh sau:

$ systemctl restart tomcat

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

Sau khi hoàn tất các thiết lập, bạn truy cập lại giao diện quản trị Tomcat theo đường dẫn: http://<your_domain_or_IP_address>:8080

 

Bạn lần lượt truy cập vào Server StatusManage App và Host Manager, sau khi hoàn tất bước xác thực Tomcat User sẽ được kết quả tương tự như sau:

  • Server Status

  • Manage App

  • Host-Manager

Kết luận

Như vậy là mình đã hoàn thành bài viết hướng dẫn những bước cài đặt và cấu hình Tomcat 9 cơ bản nhất trên Ubuntu 20.04Bạn có thể truy cập trang Tài liệu Tomcat 9 của Apache để tìm hiểu thêm những thiết lập nâng cao khác.

Trong bài viết sau, mình sẽ tiếp tục chia sẻ hướng dẫn quản trị và  deploy ứng dụng Java lêm Tomcat server. Các bạn nhớ theo dõi nhé!

Share and Enjoy !

Shares
Giới thiệu Hiệp Phạm 135 bài viết
Hiệp hiện đang là thành viên nhóm tác giả của HIEPSHARING.COM. Thích tìm hiểu, nghiên cứu Ethical Hacking, SysAdmin, DevOps và những công nghệ mới. Phương châm sống của mình: "Chỉ cần bản thân không bỏ cuộc, chậm chút cũng không sao."

Hãy bình luận đầu tiên

Để lại một phản hồi

Thư điện tử của bạn sẽ không được hiện thị công khai.


*