在Debian系統上配置Tomcat涉及多個步驟,包括安裝Tomcat、配置環境變量、設置systemd服務以及啟動和驗證Tomcat服務。以下是詳細的配置指南:
首先,確保你的系統已經安裝了Java Development Kit (JDK)??梢允褂靡韵旅畎惭bOpenJDK:
sudo apt update
sudo apt install default-jdk
然后,下載并解壓Tomcat:
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.76/bin/apache-tomcat-9.0.76.tar.gz
tar -zxvf apache-tomcat-9.0.76.tar.gz
sudo mv apache-tomcat-9.0.76 /opt/tomcat
為了安全起見,不建議以root用戶運行Tomcat。創建一個新的用戶和組:
sudo groupadd tomcats
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
設置Tomcat目錄和文件的所有權:
sudo chgrp -R tomcat /opt/tomcat
sudo chmod -R 755 /opt/tomcat/conf
sudo chown -R tomcat /opt/tomcat/webapps/ /opt/tomcat/work/ /opt/tomcat/temp/ /opt/tomcat/logs/
創建一個systemd服務文件以便于管理Tomcat服務:
sudo nano /etc/systemd/system/tomcat.service
在文件中添加以下內容:
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/default-java"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_BASE=/opt/tomcat"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
保存并退出編輯器,然后重新加載systemd配置:
sudo systemctl daemon-reload
啟動Tomcat服務:
sudo systemctl start tomcat
驗證Tomcat是否正常運行:
在Web瀏覽器中訪問 http://your_server_ip:8080 ,如果看到Tomcat的默認歡迎頁面,則表示安裝成功。
默認情況下,Tomcat使用8080端口。如果需要更改端口,可以編輯 conf/server.xml
文件,找到以下行:
Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"
修改 port
屬性的值為你希望使用的端口號,然后保存文件并重新啟動Tomcat服務。
為了安全起見,默認情況下Tomcat的Web管理界面是禁用的。你需要編輯 conf/tomcat-users.xml
文件,添加一個具有管理角色的用戶:
<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="your_password" roles="manager-gui,admin-gui"/>
</tomcat-users>
保存文件并重新啟動Tomcat服務。
調整連接器參數:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="200" minSpareThreads="10" acceptCount="100" compression="on" compressionMinSize="2048"/>
啟用APR本地庫(如果系統支持):安裝 tomcat-native
庫并配置環境變量以提升靜態資源處理性能。
配置Tomcat管理員賬戶:
<security-constraint>
<web-resource-collection>
<web-resource-name>Manager</web-resource-name>
<url-pattern>/manager/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>manager-gui</role-name>
<role-name>admin-gui</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Tomcat Manager</realm-name>
</login-config>
修改默認端口:在 server.xml
中修改默認端口(如8080)以避免容易被掃描。
禁用管理端弱口令:確保不使用默認密碼,如 tomcat/s3cret
。
隱藏版本信息:在 web.xml
中配置以防止泄露服務器版本。
啟用日志切割:
handlers = 1catalina.org.apache.juli.AsyncFileHandler
1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.