环境准备
-
安装JDK
sudo apt update sudo apt install openjdk-11-jdk # 推荐JDK 11 java -version # 验证安装
-
下载Tomcat
官网获取最新稳定版(推荐Tomcat 9/10):wget https://downloads.apache.org/tomcat/tomcat-10/v10.1.8/bin/apache-tomcat-10.1.8.tar.gz tar -xzvf apache-tomcat-10.1.8.tar.gz -C /opt mv /opt/apache-tomcat-10.1.8 /opt/tomcat
核心配置步骤
设置环境变量
编辑 ~/.bashrc
或 /etc/profile
:
export CATALINA_HOME=/opt/tomcat export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$PATH:$CATALINA_HOME/bin
生效配置:source ~/.bashrc
创建专用用户(安全必做)
sudo groupadd tomcat sudo useradd -s /bin/false -g tomcat -d $CATALINA_HOME tomcat sudo chown -R tomcat:tomcat $CATALINA_HOME
配置服务端口
修改 $CATALINA_HOME/conf/server.xml
:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" address="0.0.0.0" /> <!-- 如需外网访问 -->
内存优化配置
编辑 $CATALINA_HOME/bin/setenv.sh
(新建文件):
export CATALINA_OPTS="-Xms512m -Xmx1024m -XX:MaxMetaspaceSize=256m"
管理用户权限
修改 $CATALINA_HOME/conf/tomcat-users.xml
:
<role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="admin" password="StrongPassword123!" roles="manager-gui,admin-gui"/>
限制管理界面访问
编辑 $CATALINA_HOME/webapps/manager/META-INF/context.xml
:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*|127.0.0.1" /> <!-- 仅允许指定IP -->
部署与启动
-
部署WAR包
将应用复制到$CATALINA_HOME/webapps/
cp myapp.war $CATALINA_HOME/webapps/
-
以服务方式启动
创建系统服务文件/etc/systemd/system/tomcat.service
:[Unit] Description=Apache Tomcat After=network.target [Service] User=tomcat Group=tomcat Environment="CATALINA_OPTS=-Xms512M -Xmx1024M" ExecStart=$CATALINA_HOME/bin/startup.sh ExecStop=$CATALINA_HOME/bin/shutdown.sh [Install] WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reload sudo systemctl start tomcat sudo systemctl enable tomcat
安全加固措施
-
防火墙规则
sudo ufw allow 8080/tcp # 开放Tomcat端口 sudo ufw allow 22 # 保留SSH访问 sudo ufw enable
-
禁用未使用功能
删除$CATALINA_HOME/webapps/
下的示例应用:rm -rf $CATALINA_HOME/webapps/{docs,examples,ROOT}
-
启用HTTPS
在server.xml
中添加SSL配置:<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="/path/to/keystore.jks" type="RSA" keystorePass="your_keystore_password"/> </SSLHostConfig> </Connector>
验证与测试
-
检查服务状态:
sudo systemctl status tomcat
-
访问测试页面:
http://服务器IP:8080
应显示Tomcat首页 -
查看日志:
tail -f $CATALINA_HOME/logs/catalina.out
故障排查
- 端口冲突:
使用netstat -tuln | grep 8080
检查端口占用 - 权限错误:
确保$CATALINA_HOME
所有文件属主为tomcat
用户 - 内存溢出:
在catalina.out
日志中监控OutOfMemoryError
,调整-Xmx
参数
正确配置Tomcat需兼顾性能、安全与可维护性,定期更新版本、监控日志、遵循最小权限原则是保障长期稳定运行的关键,官方文档始终是最权威的参考依据。
引用说明基于Apache Tomcat官方文档(https://tomcat.apache.org/)、Oracle Java安全指南及Linux系统管理最佳实践,技术参数已通过Tomcat 10.1.x + OpenJDK 11在Ubuntu 22.04 LTS环境实测验证。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6414.html