1. 安装与初始化配置
java -version确认安装成功。/opt目录(如/opt/tomcat),避免使用root用户操作。tomcat组和用户(-s /bin/false禁用shell登录),将Tomcat目录所有权赋予tomcat:tomcat;精细设置权限:conf(750)、logs/temp/webapps(755),防止未授权访问。/etc/systemd/system/tomcat.service文件,配置User=tomcat、Group=tomcat、JAVA_HOME(指向系统JDK路径)、CATALINA_OPTS(初始堆-Xms512M、最大堆-Xmx1024M、垃圾回收器-XX:+UseG1GC)等参数;执行systemctl daemon-reload、systemctl start tomcat、systemctl enable tomcat启动服务并设置开机自启。2. 性能优化配置
JAVA_OPTS或CATALINA_OPTS调整内存分配(如-Xms1024m -Xmx2048m适应中等负载)、元空间大小(-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m避免元空间溢出)、垃圾回收器(-XX:+UseG1GC适用于大内存堆,-XX:MaxGCPauseMillis=200限制最大GC暂停时间)。server.xml中配置<Executor>(命名tomcatThreadPool,maxThreads=500处理并发请求数、minSpareThreads=50保持最小空闲线程、maxQueueSize=100限制排队请求数);关联<Connector>使用该线程池,提升并发处理能力。protocol="org.apache.coyote.http11.Http11Nio2Protocol")替代传统BIO,提高I/O效率;启用压缩(compression="on"、compressableMimeType="text/html,text/css,application/javascript")减少网络传输量;调整acceptCount=500(所有线程繁忙时的最大排队数),避免请求被拒绝。JAVA_OPTS添加-XX:+UseStringDeduplication(字符串去重减少内存占用)、-Djava.awt.headless=true(无图形界面运行,节省资源);通过ulimit -n 65536增加系统文件描述符限制,避免高并发下文件句柄耗尽。3. 安全加固措施
tomcat-users.xml,仅添加必要角色(如manager-gui、admin-gui)和强密码用户(如StrongP@ssw0rd123);禁用默认管理员账号(如admin),避免弱口令攻击。web.xml,在<error-page>中添加<init-param>(<param-name>showServerInfo</param-name>、<param-value>false</param-value>),隐藏Tomcat版本号,降低被针对性攻击的风险。ufw配置防火墙,仅允许必要端口(如sudo ufw allow 8080/tcp);若无需远程管理,注释server.xml中的manager和host-manager应用,或限制其访问IP(如<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192\.168\.1\.\d+" />)。openssl req -new -x509 -days 365 -keyout /opt/tomcat/conf/tomcat.key -out /opt/tomcat/conf/tomcat.crt)或使用Let’s Encrypt证书;配置server.xml中的<Connector>(port=8443、SSLEnabled=true、keystoreFile指向证书路径),强制HTTPS访问,保护数据传输安全。4. 日志与监控管理
logging.properties,调整日志级别(如org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO避免DEBUG日志过多);使用logrotate工具配置日志轮转(如/etc/logrotate.d/tomcat),设置每日分割、保留7天,防止日志文件过大占用磁盘空间。VisualVM、JConsole或Prometheus+Grafana监控Tomcat的JVM内存使用率、线程池状态、请求响应时间等指标;设置阈值告警(如内存使用率超过80%触发邮件通知),及时发现并解决性能瓶颈。