如何在CentOS 8上安裝Tomcat 9

Apache Tomcat是Java Servlet,JavaServer Pages,Java Expression Language和Java WebSocket技術的開源實現。如今,它已成為全球使用最廣泛的應用程序和Web服務器之一。 Tomcat易於使用,並具有強大的附加組件生態系統。

本教程描述了如何在CentOS 8上安裝Tomcat 9.0。

Java安裝#

Tomcat 9需要Java SE 8或更高版本。安裝OpenJDK 11,這是Java平台的開源實現。

通過以超級用戶或具有sudo特權的用戶身份運行以下命令來安裝Java:

sudo dnf install java-11-openjdk-devel

安裝完成後,檢查並確認Java版本。

java -version

輸出看起來像這樣:

openjdk version "11.0.5" 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)

創建系統用戶

以root用戶身份運行Tomcat存在安全風險。創建一個新的系統用戶並使用主目錄進行分組 /opt/tomcat Tomcat服務運行。為此,請輸入以下命令:

sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat

Tomcat下載#

可以從Tomcat下載頁面下載Tomcat二進制發行版。

在撰寫本文時,最新的Tomcat版本是 9.0.30。在繼續之前,請檢查Tomcat 9下載頁面以查看是否有新版本。

下載Tomcat zip文件 wget/tmp 目錄:

VERSION=9.0.30wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz -P /tmp

下載完成後,解壓縮tar文件, /opt/tomcat 目錄::

sudo tar -xf /tmp/apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat/

Tomcat會定期更新。創建以下符號鏈接,以更好地控制版本和更新。 latest,指向Tomcat安裝目錄。

sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest

先前創建的系統用戶必須有權訪問Tomcat安裝目錄。將用戶和組的目錄所有權更改為Tomcat。

sudo chown -R tomcat: /opt/tomcat

Shell腳本 bin 目錄可執行文件:

sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'

這些腳本用於啟動和停止Tomcat。

創建系統單位文件

將Tomcat服務器配置為作為服務運行,而不是手動啟動和停止它。打開文本編輯器並創建 tomcat.service 單位檔案 /etc/systemd/system/ 目錄:

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

粘貼以下內容:

/etc/systemd/system/tomcat.service

[Unit]
Description=Tomcat 9 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

保存並關閉文件。

通過鍵入以下命令通知systemd:存在新的服務文件:

sudo systemctl daemon-reload

啟用並啟動Tomcat服務。

sudo systemctl enable --now tomcat

檢查服務狀態。

sudo systemctl status tomcat

輸出顯示Tomcat服務器已啟用並正在運行。

● tomcat.service - Tomcat 9 servlet container
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2020-01-15 20:38:07 UTC; 30s ago
  Process: 3957 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
  ...

防火牆設置

如果服務器位於防火牆後面,並且您想從本地網絡外部訪問Tomcat接口,則需要打開端口 8080

使用以下命令打開所需的端口:

sudo firewall-cmd --permanent --zone=public --add-port=8080/tcpsudo firewall-cmd --reload

通常,在生產環境中運行Tomcat時,您將需要使用負載平衡器或反向代理。我們建議允許訪問該端口 8080 僅用於內部網絡。

配置Tomcat Web管理接口

此時,您應該能夠使用端口上的Web瀏覽器訪問Tomcat。 8080。您無法訪問Web管理界面,因為您尚未創建任何用戶。

Tomcat用戶和角色 tomcat-users.xml 文件

打開文件時,您將看到描述如何組織文件的注釋和示例。

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

Tomcat用戶 tomcat-users.xml 文件要創建有權訪問Tomcat Web界面(manager-gui和admin-gui)的新用戶,請編輯文件,如下所示。更改您的用戶名和密碼以更安全。

/opt/tomcat/latest/conf/tomcat-users.xml



   
   
   

默認情況下,Tomcat Web管理界面被配置為只能從本地主機訪問。

如果需要從任何地方訪問Web界面,請打開以下文件並注釋或刪除以黃色突出顯示的行。

/opt/tomcat/latest/webapps/manager/META-INF/context.xml



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



由於安全隱患,建議不要使其隨處可見。

如果只想從特定IP訪問Web界面,則將公共IP添加到列表中,而不要在塊上添加註釋。

您的公共IP 41.41.41.41 如果您只允許從該IP訪問:

/opt/tomcat/latest/webapps/manager/META-INF/context.xml


  

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


  

允許的IP地址列表是用豎線分隔的列表 |。您可以添加一個IP地址或使用正則表達式。

完成後,重新啟動Tomcat服務以使更改生效。

sudo systemctl restart tomcat

測試安裝

打開瀏覽器並輸入以下內容: http://:8080

如果安裝成功,將顯示以下屏幕。

如何在CentOS 8上安裝Tomcat 9 1

使用Tomcat Web應用程序管理器儀錶板來部署,取消部署,啟動,停止和重新加載應用程序。可在: http://:8080/manager/html

如何在CentOS 8上安裝Tomcat 9 2

使用Tomcat虛擬主機管理器儀錶板創建,刪除和管理Tomcat虛擬主機。可在: http://:8080/host-manager/html

如何在CentOS 8上安裝Tomcat 9 3

總結#

我們展示了如何在CentOS 8上安裝Tomcat 9.0以及如何訪問Tomcat管理界面。

有關Apache Tomcat的更多信息,請參見官方文檔頁面。

如果您有任何問題或反饋,請在下面發表評論。