Làm thế nào để cài đặt Apache Tomcat 8 trên Ubuntu 16.04

Giới thiệu

Apache Tomcat là một máy chủ web và thùng chứa servlet được sử dụng để phục vụ các ứng dụng Java. Tomcat là một triển khai mã nguồn mở của các công nghệ Java Servlet và JavaServer Pages, do Quỹ phần mềm Apache phát hành. Hướng dẫn này trình bày về 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 8 trên máy chủ Ubuntu 16.04 của bạn.

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

Trước khi bắt đầu với hướng dẫn này, bạn nên có người dùng không phải root với sudo các đặc quyền được thiết lập trên máy chủ của bạn. Bạn có thể tìm hiểu 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 máy chủ ban đầu cho Ubuntu 16.04.

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

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

Đầu tiên, cập nhật chỉ mục gói apt-get của bạn:

sudo apt-get update

Sau đó cài đặt gói Java Development Kit với apt-get:

sudo apt-get install default-jdk

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

Bước 2: Tạo người dùng Tomcat

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

Đầu tiên, tạo mới tomcat nhóm:

sudo groupadd tomcat

Tiếp theo, tạo mới tomcat người dùng. Chúng tôi sẽ làm cho người dùng này trở thành thành viên của tomcat nhóm, với một thư mục nhà của /opt/tomcat (nơi chúng tôi sẽ cài đặt Tomcat), và với một vỏ /bin/false (để không ai có thể đăng nhập vào tài khoản):

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

Bây giờ chúng tôi tomcat người dùng được thiết lập, hãy tải xuống và cài đặt Tomcat.

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

Cách tốt nhất để cài đặt Tomcat 8 là tải xuống bản phát hành nhị phân mới nhất rồi định cấu hình theo cách thủ công.

Tìm phiên bản mới nhất của Tomcat 8 tại Trang tải xuống Tomcat 8. Tại thời điểm viết, phiên bản mới nhất là 8.5.5nhưng bạn nên sử dụng phiên bản ổn định sau này nếu có. Bên dưới Phân phối nhị phân phần, sau đó theo Cốt lõi danh sách, sao chép liên kết đến "tar.gz".

Tiếp theo, thay đổi thành /tmp thư mục trên máy chủ của bạn. Đây là một thư mục tốt để tải xuống các mục tạm thời, như tarball Tomcat, mà chúng ta sẽ không cần sau khi giải nén các nội dung Tomcat:

cd /tmp

Sử dụng curl để tải xuống liên kết mà bạn đã sao chép từ trang web Tomcat:

curl -O http://apache.mirrors.ionfish.org/tomcat/tomcat-8/v8.5.5/bin/apache-tomcat-8.5.5.tar.gz

Chúng tôi sẽ cài đặt Tomcat cho /opt/tomcat danh mục. Tạo thư mục, sau đó giải nén kho lưu trữ với các lệnh sau:

sudo mkdir /opt/tomcat

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

Tiếp theo, chúng tôi có thể thiết lập quyền người dùng thích hợp cho việc cài đặt của chúng tôi.

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

Các tomcat người dùng mà chúng tôi thiết lập cần có quyền truy cập vào cài đặt Tomcat. Chúng tôi sẽ thiết lập điều đó ngay bây giờ.

Thay đổi thư mục mà chúng tôi đã giải nén cài đặt Tomcat:

cd /opt/tomcat

Đưa ra tomcat quyền sở hữu nhóm trên toàn bộ thư mục cài đặt:

sudo chgrp -R tomcat /opt/tomcat

Tiếp theo, cho tomcat nhóm đọc quyền truy cập vào conf và tất cả nội dung của nó, và thi hành truy cập vào chính thư mục:

sudo chmod -R g+r conf

sudo chmod g+x conf

Làm cái tomcat người dùng chủ sở hữu của webapps, work, templogs thư mục:

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

Bây giờ, các điều khoản thích hợp được thiết lập, chúng ta có thể tạo một tệp dịch vụ systemd để quản lý quá trình Tomcat.

Bước 5: Tạo tệp dịch vụ Systemd

Chúng tôi muốn có thể chạy Tomcat như một dịch vụ, vì vậy chúng tôi sẽ thiết lập tệp dịch vụ systemd.

Tomcat cần biết nơi Java được cài đặt. Con đường này thường được gọi là "JAVA_HOME". Cách dễ nhất để tìm kiếm vị trí đó là bằng cách chạy lệnh này:

sudo update-java-alternatives -l

Outputjava-1.8.0-openjdk-amd64       1081       /usr/lib/jvm/java-1.8.0-openjdk-amd64

Đúng JAVA_HOME biến có thể được xây dựng bằng cách lấy đầu ra từ cột cuối cùng (được đánh dấu màu đỏ) và phụ thêm /jre đến cuối cùng. Đưa ra ví dụ trên, đúng JAVA_HOME cho máy chủ này sẽ là:

JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre

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

Với phần thông tin này, chúng ta có thể tạo tệp dịch vụ systemd. Mở tệp có tên tomcat.service bên trong /etc/systemd/system thư mục bằng cách gõ:

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

Dán các nội dung sau đây vào tệp dịch vụ của bạn. Sửa đổi giá trị của JAVA_HOME nếu cần thiết để khớp với giá trị bạn tìm thấy trên hệ thống của mình. Bạn cũng có thể muố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.8.0-openjdk-amd64/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=/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, lưu và đóng tệp.

Tiếp theo, tải lại daemon systemd để nó biết về tệp dịch vụ của chúng ta:

sudo systemctl daemon-reload

Khởi động dịch vụ Tomcat bằng cách gõ:

sudo systemctl start tomcat

Kiểm tra kỹ xem nó có bắt đầu mà không có lỗi hay không bằng cách gõ:

sudo systemctl status tomcat

Bước 6: Điều chỉnh tường lửa và kiểm tra máy chủ Tomcat

Bây giờ dịch vụ Tomcat được bắt đầu, chúng tôi có thể kiểm tra để đảm bảo trang mặc định khả dụng.

Trước khi thực hiện điều đó, chúng ta cần điều chỉnh tường lửa để cho phép các yêu cầu của chúng tôi truy cập vào dịch vụ. Nếu bạn tuân thủ các điều kiện tiên quyết, bạn sẽ có ufw tường lửa được kích hoạt hiện tại.

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

sudo ufw allow 8080

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

Open in web browserhttp://server_domain_or_IP:8080

Bạn sẽ thấy trang splash Tomcat mặc định, ngoài các thông tin khác. Tuy nhiên, nếu bạn nhấp vào liên kết cho ứng dụng Trình quản lý, chẳng hạn, bạn sẽ bị từ chối truy cập. Chúng ta có thể cấu hình 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 tệp dịch vụ để Tomcat tự động khởi động lúc 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 của người quản lý đi kèm với Tomcat, chúng tôi phải thêm thông tin đăng nhập vào máy chủ Tomcat của chúng tôi. Chúng tôi sẽ làm điều này bằng cách chỉnh sửa tomcat-users.xml tập tin:

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

Bạn sẽ muốn thêm người dùng có thể truy cập manager-guiadmin-gui (các ứng dụng web đi kèm với Tomcat). Bạn có thể làm như vậy bằng cách xác định người dùng, tương tự như ví dụ bên dưới, giữa tomcat-users thẻ. Đảm bảo thay đổi tên người dùng và mật khẩu thành mật khẩu an toàn:

tomcat-users.xml — Admin User

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

Lưu và đóng tệp khi bạn hoàn tất.

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

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

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

Đối với ứng dụng Trình quản lý máy chủ, nhập:

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

Bên trong, hãy bình luận giới hạn địa chỉ IP để cho phép kết nối từ bất kỳ đâu. Ngoài ra, nếu bạn muốn chỉ 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 khai của mình vào danh sách:

context.xml files for Tomcat webapps

<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 tệp khi bạn hoàn tất.

Để đặt các thay đổi của chúng tôi 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ờ chúng ta đã tạo một người dùng, chúng ta có thể truy cập lại vào giao diện quản lý web trong một trình duyệt web. Một lần nữa, bạn có thể truy cập giao diện chính xác bằng cách nhập tên miền hoặc địa chỉ IP của máy chủ của bạn theo sau trên cổng 8080 trong trình duyệt của bạn:

Open in web browserhttp://server_domain_or_IP:8080

Trang bạn xem phải giống trang bạn đã cung cấp khi bạn thử nghiệm trước đó:

Tomcat root

Hãy xem App Manager, có thể truy cập thông qua liên kết hoặc http://server_domain_or_IP:8080/manager/html. Bạn sẽ cần phải nhập thông tin đăng nhập tài khoản mà bạn đã thêm vào tomcat-users.xml tập tin. Sau đó, bạn sẽ thấy một trang trông như thế này:

Tomcat Web Application Manager

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, Tải lại, Triển khai và Undeploy 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 mình (ví dụ: tìm rò rỉ bộ nhớ). Cuối cùng, 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 Trình quản lý máy chủ, có thể truy cập được qua liên kết hoặc http://server_domain_or_IP:8080/host-manager/html/:

Tomcat Virtual Host Manager

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

Phần kết luận

Việc cài đặt Tomcat của bạn đã hoàn tất! Bây giờ 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 có chức năng, nhưng hoàn toà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 mục nhạy cảm như mật khẩu, được gửi bằ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 mình 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 bằng cách làm theo hướng dẫn này.

Thêm Bình Luận: