Appearance
Tomcat 9 推荐配置
1. 调整 JVM 参数
Tomcat 的性能很大程度上取决于 JVM 的配置。你可以通过调整 JVM 参数来优化内存使用和垃圾回收策略。修改 Tomcat 9 的 JVM 参数通常是在 $CATALINA_HOME/bin/catalina.sh(Linux/Unix)或 $CATALINA_HOME/bin/setenv.sh 文件中进行的。
Note:通常在
tomcat9.service文件中可以看到$CATALINA_HOME、$CATALINA_BASE的定义。
示例 JVM 配置:
Bash
export JAVA_OPTS="-Xms1024m -Xmx2048m -XX:+UseG1GC -XX:MaxGCPauseMillis=200"解释:
-Xms1024m: 设置 JVM 的初始堆内存大小为 1024MB;-Xmx2048m: 设置 JVM 的最大堆内存大小为 2048MB;-XX:+UseG1GC: 启用 G1 垃圾收集器,适合长时间运行的服务应用;-XX:MaxGCPauseMillis=200: 尽量将垃圾回收的最大暂停时间控制在 200 毫秒以内;
2. 调整连接器配置
Tomcat 连接器(Connector)处理 HTTP 请求,优化连接器的设置可以提升 Tomcat 的吞吐量。
在 $CATALINA_BASE/conf/server.xml 文件中配置连接器。示例配置:
xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxThreads="200"
minSpareThreads="25"
acceptCount="100"
maxConnections="10000"
enableLookups="false"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json"/>解释:
port="8080":监听的端口号;maxThreads="200":设置最大工作线程数,增加这个值可以处理更多并发请求;minSpareThreads="25":设置最小空闲线程数,保证在低负载时也有足够的空闲线程来处理请求;acceptCount="100":设置当线程用完时,允许进入等待队列的请求数量;maxConnections="10000":最大连接数,这个值可以根据服务器能力调整;compression="on":启用 GZIP 压缩以减少传输数据量;compressableMimeType:定义需要压缩的 MIME 类型;
3. 启用 APR(可选)
Apache Portable Runtime (APR) 可以显著提高 Tomcat 的性能,尤其是在处理大量并发连接时。要启用 APR,需要安装相关的库:
Bash
sudo apt install libapr1 libtcnative-1安装完成后,Tomcat 会自动检测并使用 APR。
4. 调整 Session 管理
如果你的应用需要管理大量的用户 Session,可以优化 Session 的持久化和内存使用。
在 $CATALINA_BASE/conf/context.xml 中:
xml
<Context>
<Manager className="org.apache.catalina.session.PersistentManager"
maxIdleSwap="10"
minIdleSwap="5"
maxActiveSessions="1000">
<Store className="org.apache.catalina.session.FileStore" />
</Manager>
</Context>解释:
PersistentManager:启用 Session 持久化,防止内存溢出;maxIdleSwap和minIdleSwap:定义多少时间未活动的 Session 被写入磁盘;maxActiveSessions:设置最大活跃 Session 数量;
5. 调整日志配置
Tomcat 的日志配置在 $CATALINA_BASE/conf/logging.properties 文件中,可以调整日志的详细程度和存储路径。
例如,减少日志详细程度来提升性能:
properties
org.apache.catalina.level = INFO
org.apache.catalina.loader.WebappClassLoader.level = WARN6. 安全配置
为了提高安全性,建议对 Tomcat 进行以下配置:
禁用目录列表:在
web.xml中禁用目录浏览;xml<servlet> <servlet-name>default</servlet-name> <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> </servlet>限制管理界面访问:修改
tomcat-users.xml,确保只有特定用户能够访问管理界面;启用 HTTPS:配置 SSL 以确保数据传输的安全;
7. 定期维护与监控
- JMX 监控:通过 JMX 对 Tomcat 的性能进行监控,可以提前发现性能瓶颈;
- 清理日志:定期清理旧日志文件,避免磁盘占满;