怎样修改centos上的tomcat配置
导读:在 CentOS 上修改 Tomcat 配置的实用步骤 一 准备与定位配置文件 确认 JDK 已安装:java -version,如未安装可执行:sudo yum install java-1.8.0-openjdk-devel -y。...
在 CentOS 上修改 Tomcat 配置的实用步骤
一 准备与定位配置文件
- 确认 JDK 已安装:
java -version,如未安装可执行:sudo yum install java-1.8.0-openjdk-devel -y。 - 进入 Tomcat 安装目录(示例为 /opt/tomcat),主要配置文件位于 conf/ 下:
- server.xml:连接器端口、线程池、Host、SSL 等核心配置
- web.xml:应用与容器的默认行为(如目录浏览)
- context.xml:数据源、资源等上下文配置
- tomcat-users.xml:管理用户与角色
- 建议以专用系统用户运行 Tomcat(非 root),便于安全与运维。
二 常见配置修改与示例
- 修改 HTTP 端口(避免与已有服务冲突)
编辑 conf/server.xml,将 < Connector port=“8080” … /> 改为如 8081:
保存后重启 Tomcat 生效。< Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> - 同时运行多个 Tomcat 实例
需确保三个端口均不冲突:HTTP 端口(默认 8080)、SHUTDOWN 端口(默认 8005)、AJP 端口(默认 8009)。示例:
分别修改为未被占用的端口后重启各实例。< Server port="8006" shutdown="SHUTDOWN"> < Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> < Connector port="8010" protocol="AJP/1.3" redirectPort="8443" /> - 字符编码与超时
在 上添加或调整:- URIEncoding=“UTF-8”(统一 GET/POST 编码,避免中文乱码)
- connectionTimeout(连接超时,单位毫秒)
示例:
< Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" /> - 线程池与连接器(提升并发与性能)
使用共享线程池并启用 NIO/NIO2:< Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="50" maxQueueSize="100"/> < Connector executor="tomcatThreadPool" port="8081" protocol="org.apache.coyote.http11.Http11Nio2Protocol" connectionTimeout="20000" keepAliveTimeout="15000" maxKeepAliveRequests="1" redirectPort="8443" /> - JVM 内存与 GC(在 $CATALINA_HOME/bin/catalina.sh 或 systemd 的 CATALINA_OPTS/JAVA_OPTS 中设置)
示例:
修改后重启使其生效。CATALINA_OPTS="-Xms512M -Xmx1024M -server -XX:+UseG1GC" JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8"
三 防火墙与端口放行
- 如果使用 firewalld(CentOS 7/8 常用):
如启用 HTTPS/8443,同样放行对应端口。修改端口后务必同步更新防火墙规则。sudo firewall-cmd --zone=public --add-port=8081/tcp --permanent sudo firewall-cmd --reload
四 以 Systemd 管理并验证
- 创建服务文件 /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-1.8.0-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:+UseG1GC' 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 sudo systemctl status tomcat - 验证端口监听:
访问 http://服务器IP:新端口/ 确认应用可达。ss -lntp | grep 8081
五 安全加固要点
- 禁止目录列表:编辑 conf/web.xml,将 listings 的值设为 false。
- 运行身份:创建 tomcat 系统用户,服务以该用户运行,避免使用 root。
- 隐藏版本信息:在 Connector 上设置 server=“MyTomcatServer”,并视需要定制版本信息显示。
- 管理应用访问控制:按需保留或移除 webapps/manager、host-manager,并在 tomcat-users.xml 中严格配置角色与密码。
- 启用 HTTPS/TLS:在 server.xml 配置 8443/9443 连接器与证书,强制敏感数据走加密通道。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 怎样修改centos上的tomcat配置
本文地址: https://pptw.com/jishu/751988.html
