Ubuntu下Tomcat配置实用技巧
sudo apt update && sudo apt install openjdk-11-jdk安装,通过java -version验证安装是否成功。wget命令下载后解压至指定目录(如/opt/tomcat),例如sudo tar xzvf apache-tomcat-9.0.53.tar.gz -C /opt/tomcat/。tomcat并设置目录权限:sudo useradd -m -d /opt/tomcat -U -s /bin/false tomcat,sudo chown -R tomcat:tomcat /opt/tomcat。/etc/systemd/system/tomcat.service文件,定义Tomcat的启动、停止及重启行为,关键配置包括JAVA_HOME路径、CATALINA_HOME(Tomcat安装目录)、CATALINA_OPTS(JVM参数,如-Xms512M -Xmx1024M),并设置User=tomcat、Group=tomcat以低权限运行。保存后执行sudo systemctl daemon-reload重载配置,通过sudo systemctl start tomcat启动服务。catalina.sh(位于bin目录),设置合理的堆内存大小(初始堆-Xms与最大堆-Xmx,建议设为服务器物理内存的一半,如-Xms1024m -Xmx2048m)、年轻代与老年代比例(-XX:NewRatio=4,年轻代占1/5)、永久代大小(-XX:MaxPermSize=256m,Java 8及以上用-XX:MaxMetaspaceSize替代),并启用G1垃圾收集器(-XX:+UseG1GC)以提升内存管理效率。server.xml(conf目录),优化<Connector>标签参数:使用NIO协议(protocol="org.apache.coyote.http11.Http11NioProtocol")提升高并发性能;设置maxThreads=200(最大线程数,根据CPU核心数调整,如4核建议100-200)、minSpareThreads=50(最小空闲线程,保证快速响应新请求)、acceptCount=250(等待队列长度,避免请求丢失)、URIEncoding="UTF-8"(解决中文乱码)、enableLookups="false"(禁用域名反查,减少DNS查询开销)。maxThreads、minSpareThreads、acceptCount参数组合,平衡并发处理能力与系统资源消耗。例如,高并发场景下可适当增加maxThreads(如300),但需避免过多线程导致CPU切换开销。tomcat用户(而非root)运行,限制其对系统资源的访问权限,降低入侵后的破坏范围。webapps目录下的默认应用(如docs、examples、ROOT、host-manager、manager),减少潜在的攻击面。server.xml,将autoDeploy(自动部署)和deployOnStartup(启动时部署)属性设置为false,避免未经授权的应用自动部署。keytool生成密钥库(keytool -genkeypair -alias tomcat -keyalg RSA -keystore /path/to/keystore.jks -validity 365),编辑server.xml添加SSL连接器(<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" keystoreFile="/path/to/keystore.jks" keystorePass="your_password" clientAuth="false" sslProtocol="TLS"/>);启用HTTP/2协议(<Connector port="8443" protocol="org.apache.coyote.http2.Http2Protocol" .../>),提升数据传输安全性与性能。tomcat-users.xml(conf目录),设置复杂密码(如包含大小写字母、数字、特殊字符)并仅授权必要角色(如manager-gui用于Web管理界面、admin-gui用于服务器管理);通过server.xml的<Valve>标签限制管理界面的访问IP(如<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192\.168\.1\.\d+" />)。logs/catalina.out、logs/localhost_access_log.*.txt),使用tail -f /opt/tomcat/logs/catalina.out实时查看日志,通过VisualVM、JConsole等工具监控JVM内存、线程状态,及时发现内存泄漏或性能瓶颈。ufw(Uncomplicated Firewall)配置防火墙,允许Tomcat端口(默认8080)的外部访问:sudo ufw allow 8080/tcp,启用防火墙:sudo ufw enable,确保仅开放必要端口。tomcat.apache.org)的最新稳定版本,升级前备份webapps、conf等目录,按照官方文档步骤升级,修复已知安全漏洞。