首页主机资讯怎样修改centos上的tomcat配置

怎样修改centos上的tomcat配置

时间2025-11-20 13:29:03发布访客分类主机资讯浏览1275
导读:在 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
    <
        Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000" redirectPort="8443" />
        
    
    保存后重启 Tomcat 生效。
  • 同时运行多个 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 常用):
    sudo firewall-cmd --zone=public --add-port=8081/tcp --permanent
    sudo firewall-cmd --reload
    
    如启用 HTTPS/8443,同样放行对应端口。修改端口后务必同步更新防火墙规则。

四 以 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
    
  • 验证端口监听:
    ss -lntp | grep 8081
    
    访问 http://服务器IP:新端口/ 确认应用可达。

五 安全加固要点

  • 禁止目录列表:编辑 conf/web.xml,将 listings 的值设为 false
  • 运行身份:创建 tomcat 系统用户,服务以该用户运行,避免使用 root
  • 隐藏版本信息:在 Connector 上设置 server=“MyTomcatServer”,并视需要定制版本信息显示。
  • 管理应用访问控制:按需保留或移除 webapps/managerhost-manager,并在 tomcat-users.xml 中严格配置角色与密码。
  • 启用 HTTPS/TLS:在 server.xml 配置 8443/9443 连接器与证书,强制敏感数据走加密通道。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 怎样修改centos上的tomcat配置
本文地址: https://pptw.com/jishu/751988.html
centos下如何配置tomcat负载均衡 centos下如何配置tomcat日志

游客 回复需填写必要信息