在Ubuntu上部署和配置Tomcat時,遵循最佳實踐可以確保服務器的安全性、性能和穩定性。以下是一些關鍵步驟和最佳實踐:
更新系統:
sudo apt update
sudo apt upgrade
安裝Java:
安裝OpenJDK,例如:
sudo apt install openjdk-11-jdk
下載并解壓Tomcat:
從Tomcat官網下載最新版本的Tomcat,然后解壓到適當的位置,例如/opt/tomcat
。
配置環境變量:
編輯~/.bashrc
文件,添加以下內容:
export CATALINA_HOME=/opt/tomcat
export PATH=$PATH:$CATALINA_HOME/bin
使配置生效:
source ~/.bashrc
啟動和啟用Tomcat服務:
創建systemd服務文件:
sudo nano /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-11-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
啟用并啟動Tomcat服務:
sudo systemctl daemon-reload
sudo systemctl start tomcat
sudo systemctl enable tomcat
限制管理控制臺訪問:
重命名管理控制臺目錄,例如將manager
重命名為new_manager
,并限制訪問IP地址。
配置管理用戶的驗證:
在$CATALINA_HOME/conf/tomcat-users.xml
中創建用戶并分配必要的角色。
配置SSL/TLS:
獲取SSL/TLS證書,編輯$CATALINA_HOME/conf/server.xml
文件,配置連接器以啟用HTTPS:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
sslEnabled="true" maxThreads="150" scheme="https" secure="true"
keystoreFile="/path/to/your/keystore.p12"
keystorePass="your_keystore_password"
keyAlias="tomcat"
clientAuth="false" sslProtocol="TLS" />
JVM調優:
編輯$CATALINA_HOME/bin/catalina.sh
,設置JVM參數:
JAVA_OPTS="-server -Xms512m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+UseParallelGC"
線程池配置:
在$CATALINA_HOME/conf/server.xml
中配置連接器線程池參數:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxThreads="250"
minSpareThreads="50"
maxConnections="1000"
acceptCount="100" />
內核參數優化:
編輯/etc/sysctl.conf
文件,優化網絡棧參數:
net.ipv4.tcp_syncookies=1
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_fin_timeout=60
net.ipv4.tcp_synack_retries=1
net.ipv4.tcp_syn_retries=1
net.ipv4.tcp_fastopen=3
net.ipv4.tcp_keepalive_time=1200
net.ipv4.tcp_max_syn_backlog=8192
net.ipv4.tcp_max_tw_buckets=5000
net.ipv4.ip_local_port_range="1024 65535"
net.core.netdev_max_backlog=8192
net.core.somaxconn=8192
net.core.rmem_max=12582912
net.core.rmem_default=6291456
net.core.wmem_max=12582912
net.core.wmem_default=6291456
應用配置:
sudo sysctl -p
啟用壓縮:
在$CATALINA_HOME/conf/server.xml
中配置連接器以啟用壓縮:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
compression="on"
compressableMimeType="text/html,text/xml,text/plain,application/octet-stream" />
遵循這些最佳實踐,您可以在Ubuntu上成功部署和配置Tomcat,確保其安全性、性能和穩定性。