首页主机资讯tomcat配置中centos常见问题

tomcat配置中centos常见问题

时间2025-11-18 16:45:04发布访客分类主机资讯浏览564
导读:CentOS 下 Tomcat 配置的常见问题与排查 一 环境与服务管理 使用 yum 安装后,常用目录为:/etc/tomcat(配置)、/usr/share/tomcat(软件与库)、/var/lib/tomcat/webapps(应...

CentOS 下 Tomcat 配置的常见问题与排查

一 环境与服务管理

  • 使用 yum 安装后,常用目录为:/etc/tomcat(配置)、/usr/share/tomcat(软件与库)、/var/lib/tomcat/webapps(应用)、/var/log/tomcat(日志)。服务管理推荐用 systemd:systemctl enable tomcat & & systemctl start|stop|restart tomcat。若使用解压版,需自行准备环境并编写服务文件。
  • 启动时报错 “Neither the JAVA_HOME nor the JRE_HOME environment variable is defined”,在 bin/setclasspath.sh 的 “Make sure prerequisite environment variables are set” 处添加:
    export JAVA_HOME=/usr/local/java/jdk1.8.0_xx
    export JRE_HOME=$JAVA_HOME/jre
  • 控制台日志默认在 $CATALINA_HOME/logs/catalina.out,排查启动失败优先执行:tail -f logs/catalina.out
  • 运行多个实例时,注意区分 CATALINA_HOME(软件目录)与 CATALINA_BASE(实例目录),避免配置与日志互相覆盖。

二 端口与防火墙

  • 端口占用排查:
    • 查看端口:ss -tuln | grep :8080lsof -i :8080netstat -tuln | grep :8080
    • 处理占用:结束进程 kill -9 ;或调整 Tomcat 端口。
  • 修改端口:编辑 conf/server.xml,调整三个关键端口避免冲突:
    • HTTP:< Connector port=“8080” … /> (如改为 8081
    • 关闭:(如改为 8006
    • AJP:< Connector port=“8009” protocol=“AJP/1.3” … /> (如改为 8010
  • 防火墙放行(firewalld):
    • 放行端口:firewall-cmd --zone=public --add-port=8080/tcp --permanent & & firewall-cmd --reload
    • 或仅允许指定来源 IP 访问 8080:
      firewall-cmd --permanent --zone=public --add-rich-rule=‘rule family=“ipv4” source address=“x.x.x.x” port protocol=“tcp” port=“8080” accept’ & & firewall-cmd --reload

三 权限与运行用户

  • 建议创建专用系统用户运行 Tomcat(禁止登录):
    • 建用户组与用户:groupadd tomcat & & useradd -s /bin/false -g tomcat -M tomcat
    • 调整目录属主:chown -R tomcat:tomcat /opt/tomcat
    • 以 systemd 运行:在 /etc/systemd/system/tomcat.service[Service] 中设置 User=tomcatGroup=tomcat,并正确配置 ExecStart/ExecStop
  • SELinux 场景:
    • 查看状态:sestatus
    • 目录上下文(示例):chcon -R -t httpd_sys_content_t /opt/tomcat/webappschcon -R -t httpd_sys_rw_content_t /opt/tomcat/logs
    • 如涉及网络访问,按需设置布尔值:setsebool -P httpd_can_network_connect 1(谨慎开启)。

四 内存与日志

  • 内存溢出(OutOfMemoryError)时,在 bin/catalina.sh 的 “cygwin=false” 前设置 JAVA_OPTS,示例:
    JAVA_OPTS=“-server -Xms1024m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m”(Java 8 之前使用 PermGen;Java 8+ 请改为 Metaspace 相关参数)。
  • 日志过大或磁盘满导致启动失败:
    • 检查磁盘:df -h
    • 检查日志占用:du -h logs/
    • 清理历史日志后再启动(保留必要归档,避免直接删除正在写入的 catalina.out)。

五 应用部署与常见报错

  • 部署路径:默认应用目录 webapps;热部署可直接放入 WAR 包,或用 manager 应用部署。
  • 控制台中文乱码:编辑 conf/logging.properties,将 java.util.logging.ConsoleHandler.encoding=GBK(或改为 UTF-8 与系统一致)。
  • JSP 启动慢与 TLD 扫描提示:在 conf/logging.properties 增加 org.apache.jasper.servlet.TldScanner.level=FINE;在 conf/Catalina.properties 配置 tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*.jar 以跳过无需扫描的 JAR,提升启动速度。
  • 类冲突(如 java.lang.NoClassDefFoundError: javax/el/ELManager):常见于应用打包了与 Tomcat 内置 el-api 冲突的 JAR,移除应用中的 el-api.jar 或确保版本一致。
  • 多实例或复制 Tomcat 后启动报错 “Address already in use”:除修改 server.xml8005/8080/8009 外,若使用远程调试,还需检查 bin/catalina.sh 中的 JPDA_ADDRESS(如 address=8900)是否被占用并调整。

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


若转载请注明出处: tomcat配置中centos常见问题
本文地址: https://pptw.com/jishu/750262.html
centos下如何调整tomcat参数 如何备份CentOS Apache2配置

游客 回复需填写必要信息