CentOS下Tomcat配置要点
Tomcat依赖Java运行环境,需优先安装JDK。推荐使用OpenJDK 11及以上版本(兼容性更好),通过yum包管理器安装:
sudo yum install java-11-openjdk-devel -y
安装后验证版本:java -version,确保输出包含Java版本信息。配置JAVA_HOME环境变量(编辑/etc/profile,添加export JAVA_HOME=/usr/lib/jvm/java-11-openjdk),并执行source /etc/profile使变量生效。
/opt目录(建议使用非root用户操作):wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.56/bin/apache-tomcat-9.0.56.tar.gz
tar -zxvf apache-tomcat-9.0.56.tar.gz -C /opt/
mv /opt/apache-tomcat-9.0.56 /opt/tomcat
tomcat(避免以root运行),并设置目录权限:sudo groupadd tomcat
sudo useradd -M -s /bin/nologin -g tomcat -d /opt/tomcat tomcat
sudo chown -R tomcat:tomcat /opt/tomcat
sudo chmod +x /opt/tomcat/bin/*.sh
/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
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 -Dfile.encoding=UTF-8'
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
加载服务并启动:sudo systemctl daemon-reload && sudo systemctl enable tomcat && sudo systemctl start tomcat。开放Tomcat默认端口(8080),允许外部访问:
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
验证端口开放:sudo firewall-cmd --zone=public --query-port=8080/tcp(返回yes表示成功)。
通过调整JVM参数优化Tomcat内存使用,主要修改CATALINA_OPTS(在/etc/systemd/system/tomcat.service或/opt/tomcat/bin/catalina.sh中):
-Xms512M(初始堆大小)、-Xmx1024M(最大堆大小),根据服务器内存调整(建议不超过物理内存的70%);-XX:MetaspaceSize=256M、-XX:MaxMetaspaceSize=512M;-XX:+UseG1GC(启用G1垃圾回收器,适合大内存应用)。sudo systemctl restart tomcat。编辑server.xml(位于/opt/tomcat/conf/),调整<Connector>标签参数,提升并发处理能力:
maxThreads的10%-20%(如20-40);maxThreads的1.5-2倍(如300);org.apache.coyote.http11.Http11NioProtocol),提升I/O性能。<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443"
maxThreads="200"
minSpareThreads="20"
acceptCount="300" />
修改后重启Tomcat。
webapps目录下的docs、examples、manager等默认应用(避免潜在安全风险);server.xml中的<Connector>标签,添加server="Apache"(隐藏Tomcat版本);server.xml中的AJP连接器(<Connector port="8009" protocol="AJP/1.3" ... />)。Tomcat日志位于$CATALINA_HOME/logs目录(如/opt/tomcat/logs),主要包括:
tail -f catalina.out实时查看),可通过logrotate工具实现日志轮转(避免日志文件过大)。