Thứ năm, 24/10/2019 | 00:00 GMT+7

Cách cài đặt Apache Tomcat 9 trên Debian 10

Apache Tomcat là một web server và containers servlet được sử dụng để phục vụ các ứng dụng Java. Tomcat là một triển khai open-souce của các công nghệ Java Servlet và JavaServer Pages, do Apache Software Foundation phát hành. Hướng dẫn này bao gồm cài đặt cơ bản và một số cấu hình của bản phát hành mới nhất của Tomcat 9 trên server Debian 10 của bạn.

Yêu cầu

Trước khi bắt đầu với hướng dẫn này, bạn nên có một user không phải root có quyền sudo được cài đặt trên server của bạn. Bạn có thể xem cách thực hiện việc này bằng cách hoàn thành hướng dẫn cài đặt server ban đầu Debian 10 của ta .

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

Tomcat yêu cầu Java phải được cài đặt trên server để có thể thực thi bất kỳ mã ứng dụng web Java nào. Ta có thể đáp ứng yêu cầu đó bằng cách cài đặt OpenJDK với apt.

Đầu tiên, hãy cập nhật index gói apt của bạn:

  • sudo apt update

Sau đó cài đặt gói Bộ công cụ phát triển Java với apt:

  • sudo apt install default-jdk

Bây giờ Java đã được cài đặt, ta có thể tạo một user tomcat , user này sẽ được sử dụng để chạy dịch vụ Tomcat.

Bước 2 - Tạo user Tomcat

Vì mục đích bảo mật, Tomcat nên được chạy với quyền user không có quyền (tức là không phải root ). Ta sẽ tạo một user mới và group sẽ chạy dịch vụ Tomcat.

Đầu tiên, tạo một group tomcat mới:

  • sudo groupadd tomcat

Tiếp theo, tạo một user tomcat mới. Ta sẽ đặt user này thành thành viên của group tomcat , với folder chính là /opt/tomcat (nơi ta sẽ cài đặt Tomcat) và với shell là /bin/false (vì vậy không ai có thể đăng nhập vào account ):

  • sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

Bây giờ user tomcat của ta đã được cài đặt , hãy download và cài đặt Tomcat.

Bước 3 - Cài đặt Tomcat

Cách tốt nhất để cài đặt Tomcat 9 là download bản phát hành binary mới nhất sau đó cấu hình nó theo cách thủ công.

Tìm version mới nhất của Tomcat 9 tại trang Download Tomcat 9 . Tại thời điểm viết bài, version mới nhất là 9.0.27 , nhưng bạn nên sử dụng version ổn định hơn nếu có. Trong phần Phân phối binary , sau đó trong danh sách Core , sao chép liên kết đến “tar.gz”.

Tiếp theo, quay lại phiên SSH của bạn và chuyển đến /tmp trên server của bạn. Đây là một folder tốt để download các mục tạm thời, như tarball Tomcat, mà ta sẽ không cần sau khi extract nội dung Tomcat:

  • cd /tmp

Ta sẽ sử dụng công cụ dòng lệnh curl để download tarball. Cài đặt curl :

  • sudo apt install curl

Bây giờ, hãy sử dụng curl để download liên kết mà bạn đã sao chép từ trang web Tomcat:

  • curl -O http://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.11/bin/apache-tomcat-9.0.11.tar.gz

Ta sẽ cài đặt Tomcat vào folder /opt/tomcat . Tạo folder , sau đó extract repository vào nó bằng các lệnh sau:

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

Tiếp theo, ta sẽ cài đặt các quyền user thích hợp cho cài đặt của ta .

Bước 4 - Cập nhật quyền

User tomcat mà ta đã tạo cần có quyền truy cập vào cài đặt Tomcat. Ta sẽ cài đặt điều đó ngay bây giờ.

Thay đổi folder mà ta đã extract cài đặt Tomcat:

  • cd /opt/tomcat

Cấp quyền sở hữu group tomcat đối với toàn bộ folder cài đặt:

  • sudo chgrp -R tomcat /opt/tomcat

Tiếp theo, cấp cho group tomcat quyền read vào folder conf và tất cả nội dung của nó, đồng thời execute quyền truy cập vào chính folder :

  • sudo chmod -R g+r conf
  • sudo chmod g+x conf

Đặt user tomcat làm chủ sở hữu của các folder webapps , work , templogs :

  • sudo chown -R tomcat webapps/ work/ temp/ logs/

Bây giờ các quyền thích hợp đã được cài đặt , ta sẽ tạo một file dịch vụ systemd để quản lý quá trình Tomcat.

Bước 5 - Tạo file dịch vụ systemd

Ta muốn có thể chạy Tomcat như một dịch vụ, vì vậy ta sẽ cài đặt file dịch vụ systemd.

Tomcat cần biết nơi cài đặt Java. Đường dẫn này thường được gọi là JAVA_HOME . Cách dễ nhất để tra cứu vị trí đó là chạy lệnh sau:

  • sudo update-java-alternatives -l
Output
java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64

JAVA_HOME của bạn là kết quả từ cột cuối cùng (được đánh dấu ở trên). Với ví dụ trên, JAVA_HOME chính xác cho server này sẽ là:

JAVA_HOME
/usr/lib/jvm/java-1.11.0-openjdk-amd64

JAVA_HOME của bạn có thể khác.

Với phần thông tin này, ta có thể tạo file dịch vụ systemd. Mở một file có tên tomcat.service trong folder /etc/systemd/system bằng lệnh :

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

Dán các nội dung sau vào file dịch vụ của bạn. Sửa đổi giá trị của JAVA_HOME nếu cần để trùng với giá trị bạn tìm thấy trên hệ thống của bạn . Bạn cũng có thể cần sửa đổi cài đặt cấp phát bộ nhớ được chỉ định trong CATALINA_OPTS :

/etc/systemd/system/tomcat.service
[Unit] Description=Apache Tomcat Web Application Container After=network.target  [Service] Type=forking  Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64 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 

Khi bạn hoàn tất, hãy lưu file .

Tiếp theo, reload daemon systemd để nó biết về file dịch vụ của ta :

  • sudo systemctl daemon-reload

Khởi động dịch vụ Tomcat bằng lệnh :

  • sudo systemctl start tomcat

Kiểm tra kỹ xem nó có bắt đầu không có lỗi không bằng lệnh :

  • sudo systemctl status tomcat

Bạn sẽ thấy kết quả tương tự như sau:

Output
● tomcat.service - Apache Tomcat Web Application Container Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2019-10-24 17:18:11 UTC; 4s ago Process: 5962 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS) Main PID: 5970 (java) Tasks: 44 (limit: 2377) Memory: 184.2M CGroup: /system.slice/tomcat.service └─5970 /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.u Oct 24 17:18:10 tomcat systemd[1]: Starting Apache Tomcat Web Application Container... Oct 24 17:18:11 tomcat startup.sh[5962]: Tomcat started. Oct 24 17:18:11 tomcat systemd[1]: Started Apache Tomcat Web Application Container.

Điều này xác nhận Tomcat đang hoạt động trên server của bạn.

Bước 6 - Điều chỉnh Tường lửa và Kiểm tra Server Tomcat

Bây giờ dịch vụ Tomcat đã được khởi động, ta có thể kiểm tra đảm bảo rằng trang mặc định có sẵn.

Trước khi làm điều đó, ta cần điều chỉnh firewall để cho phép các yêu cầu của ta đến với dịch vụ. Nếu bạn tuân theo các yêu cầu , bạn sẽ có một firewall ufw hiện đang được kích hoạt.

Tomcat sử dụng cổng 8080 để chấp nhận các yêu cầu. Cho phép lưu lượng truy cập vào cổng đó bằng lệnh :

  • sudo ufw allow 8080

Với firewall được sửa đổi, bạn có thể truy cập trang giật gân mặc định bằng cách truy cập domain hoặc địa chỉ IP của bạn, theo sau là :8080 trong trình duyệt web:

Open in web browser
http://server_domain_or_IP:8080

Bạn sẽ thấy trang giật gân Tomcat mặc định, ngoài các thông tin khác. Tuy nhiên, nếu bạn nhấp vào các liên kết cho Ứng dụng Người quản lý, chẳng hạn, bạn sẽ bị từ chối quyền truy cập. Ta có thể cấu hình quyền truy cập đó tiếp theo.

Nếu bạn có thể truy cập thành công Tomcat, bây giờ là thời điểm tốt để kích hoạt file dịch vụ để Tomcat tự động khởi động khi server khởi động :

  • sudo systemctl enable tomcat

Bước 7 - Cấu hình giao diện quản lý web Tomcat

Để sử dụng ứng dụng web trình quản lý đi kèm với Tomcat, ta phải thêm thông tin đăng nhập vào server Tomcat của ta . Ta sẽ thực hiện việc này bằng cách chỉnh sửa file tomcat-users.xml :

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

Bạn cần thêm một user có thể truy cập manager-guiadmin-gui (các ứng dụng web đi kèm với Tomcat). Bạn có thể thực hiện bằng cách xác định user , tương tự như ví dụ bên dưới, giữa các thẻ tomcat-users . Đảm bảo thay đổi tên user và password thành một thứ gì đó an toàn:

tomcat-users.xml
<tomcat-users> . . .     <user username="admin" password="password" roles="manager-gui,admin-gui"/> </tomcat-users> 

Lưu file khi bạn hoàn tất.

Theo mặc định, các version Tomcat mới hơn hạn chế quyền truy cập vào ứng dụng Trình quản lý và Trình quản lý server đối với các kết nối đến từ chính server . Vì ta đang cài đặt trên một máy từ xa, có thể bạn cần xóa hoặc thay đổi hạn chế này. Để thay đổi các giới hạn địa chỉ IP đối với các giới hạn này, hãy mở file context.xml thích hợp.

Đối với ứng dụng Trình quản lý, hãy nhập:

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

Đối với ứng dụng Trình quản lý server , hãy nhập:

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

Bên trong, hãy comment về giới hạn địa chỉ IP để cho phép kết nối từ mọi nơi. Ngoài ra, nếu bạn chỉ muốn cho phép truy cập vào các kết nối đến từ địa chỉ IP của chính mình, bạn có thể thêm địa chỉ IP công cộng của bạn vào danh sách:

file context.xml cho ứng dụng web Tomcat
<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" />--> </Context> 

Lưu và đóng các file khi bạn hoàn tất.

Để các thay đổi của ta có hiệu lực, hãy khởi động lại dịch vụ Tomcat:

  • sudo systemctl restart tomcat

Bước 8 - Truy cập Giao diện Web

Bây giờ ta đã tạo một user , ta có thể truy cập lại vào giao diện quản lý web trong trình duyệt web. , bạn có thể truy cập đúng giao diện bằng lệnh domain hoặc địa chỉ IP của server theo sau trên cổng 8080 trong trình duyệt của bạn:

Open in web browser
http://server_domain_or_IP:8080

Trang bạn thấy phải giống với trang bạn đã được cung cấp khi bạn kiểm tra trước đó:

Gốc Tomcat

Hãy xem qua Ứng dụng Trình quản lý, có thể truy cập thông qua liên kết hoặc http:// server_domain_or_IP :8080/manager/html . Bạn cần nhập thông tin đăng nhập account mà bạn đã thêm vào file tomcat-users.xml . Sau đó, bạn sẽ thấy một trang trông như thế này:

Trình quản lý ứng dụng web Tomcat

Trình quản lý Ứng dụng Web được sử dụng để quản lý các ứng dụng Java của bạn. Bạn có thể Bắt đầu, Dừng, Reload , Triển khai và Hoàn tác tại đây. Bạn cũng có thể chạy một số chẩn đoán trên ứng dụng của bạn (tức là tìm rò rỉ bộ nhớ). Cuối cùng, thông tin về server của bạn có ở cuối trang này.

Bây giờ ta hãy xem qua Trình quản lý server , có thể truy cập qua liên kết hoặc http:// server_domain_or_IP :8080/host-manager/html/ :

Trình quản lý  server  ảo Tomcat

Từ trang Trình quản lý server ảo, bạn có thể thêm server ảo để phục vụ các ứng dụng của bạn .

Kết luận

Quá trình cài đặt Tomcat của bạn đã hoàn tất! Như vậy, bạn có thể tự do triển khai các ứng dụng web Java của riêng mình.

Hiện tại, cài đặt Tomcat của bạn vẫn hoạt động, nhưng hoàn toàn không được mã hóa. Điều này nghĩa là tất cả dữ liệu, bao gồm các mục nhạy cảm như password , được gửi ở dạng văn bản thuần túy có thể bị chặn và đọc bởi các bên khác trên internet. Để ngăn điều này xảy ra, bạn nên mã hóa các kết nối của bạn bằng SSL. Bạn có thể tìm hiểu cách mã hóa các kết nối của bạn với Tomcat theo hướng dẫn này ( lưu ý: hướng dẫn này bao gồm mã hóa Tomcat 8 trên Ubuntu 16.04 ).


Tags:

Các tin liên quan

Cách cấu hình báo cáo MTA-STS và TLS cho miền của bạn bằng Apache trên Ubuntu 18.04
2019-09-06
Cách viết lại URL bằng mod_rewrite cho Apache trên Debian 10
2019-08-22
Cách tạo chứng chỉ SSL tự ký cho Apache trong Debian 10
2019-07-22
Cách cài đặt web server Apache trên Debian 10
2019-07-19
Cách cấu hình Apache HTTP với Sự kiện MPM và PHP-FPM trên FreeBSD 12.0
2019-07-12
Cách cài đặt một Apache, MySQL và PHP (FAMP) trên FreeBSD 12.0
2019-06-28
Cách cài đặt web server Apache trên CentOS 7
2019-05-29
Cách bảo mật Apache bằng Let's Encrypt trên CentOS 7
2019-05-23
Cách cài đặt Apache Kafka trên Ubuntu 18.04
2019-05-10
Cách cài đặt Apache Kafka trên Debian 9
2019-05-10