上手Tomcat 1.Ubuntu 18.04 下載/安裝Tomcat 以下內容 "參考鏈接" 1. 安裝JDK 2. 創建Tomcat用戶 從安全形度考慮,Tomcat應當由非Root用戶運行。所以接下來我們要創建一個用戶組和用戶來運行Tomcat 添加用戶組: 添加用戶: 3. 安裝Tomcat ...
上手Tomcat
1.Ubuntu 18.04 下載/安裝Tomcat
以下內容參考鏈接
安裝JDK
sudo apt-get update sudo apt-get install default-jdk
創建Tomcat用戶
從安全形度考慮,Tomcat應當由非Root用戶運行。所以接下來我們要創建一個用戶組和用戶來運行Tomcat
添加用戶組:
sudo groupadd tomcat
添加用戶:
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
安裝Tomcat
安裝Tomcat最好的方式是下載 Binary Release 並手動配置。
到 Tomcat 9 Download Page 下載最新版本,並解壓到 /opt/tomcat 文件夾內更新許可權
# 進入 tomcat 文件夾內 cd /opt/tomcat # 將 /opt/tomcat 文件夾及文件夾內所有內容的擁有者設置為 tomcat組 sudo chgrp -R tomcat /opt/tomcat # conf文件夾內的內容賦予讀取許可權 sudo chmod -R g+r conf # conf文件夾自身賦予讀取許可權 # 將 webapps work temp logs 的擁有者設置為 tomcat組 sudo chown -R tomcat webapps/ work/ temp/ logs/
創建一個服務文件
我們要把Tomcat以服務(守護進程)的方式來運行,所以需要創建一個 systemd 服務文件。
Tomcat 需要知道 JAVA 的安裝目錄,該目錄保存在系統環境變數 JAVA_HOME 中,運行下麵的命令來查找安裝路徑:
sudo update-java-alternatives -l
顯示出兩個地址:
java-1.11.0-openjdk-amd64 1101 /usr/lib/jvm/java-1.11.0-openjdk-amd64 java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64
我使用 jdk8 的安裝路徑。
編輯 tomcat.service 文件
sudo gedit /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 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
保存並退出。
重載修改過的配置文件
sudo systemctl daemon-reload
開啟 Tomcat 服務
sudo systemctl start tomcat
查看 Tomcat 服務的狀態
sudo systemctl status tomcat
打開防火牆並測試 Tomcat
sudo ufw allow 8080
在瀏覽器中輸入地址:http://127.0.0.1:8080/ ,預設會打開 Tomcat 的啟動頁面。另外,如果我們點擊 Manage App這個按鈕,會顯示拒絕訪問。下文我們將會介紹如何來配置許可權。
最後,確認可以訪問 Tomcat 後,開啟服務。
sudo systemctl enable tomcat
配置 Tomcat 網路管理介面
為了管理Tomcat的 web app ,我們必須要開啟一個賬戶來登錄 Tomcat server。
sudo gedit /opt/tomcat/conf/tomcat-users.xml
在 tomcat-users 節點下添加一個 user 節點,如下:
<tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" version="1.0"> <user username="admin" password="admin" roles="manager-gui,admin-gui"/> </tomcat-users>
預設情況下,較新版本的 Tomcat只允許來自伺服器本身的連接訪問 Manager & Host Manager。如果需要通過遠程更改,可以修改 context.xml 文件。
# Manager app sudo gedit /opt/tomcat/webapps/manager/META-INF/context.xml # Host Manader app sudo gedit /opt/tomcat/webapps/host-manager/META-INF/context.xml
註釋限制訪問的 IP 節點:
<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" /--> <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/> </Context>
重啟 Tomcat 服務來應用修改
sudo systemctl restart tomcat