You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置Apache与Tomcat部署WAR后域名显示Apache测试页问题

排查Apache显示测试页而非Tomcat部署项目的问题

这种情况我之前碰到过好几次,大概率是Apache的请求转发规则没配置到位,或者mod_jk的关联逻辑没生效。咱们一步步来定位问题:

1. 先确认mod_jk模块是否真的加载成功

先执行命令检查Apache是否加载了mod_jk模块:

httpd -M | grep jk

如果输出里没有jk_module (shared),说明mod_jk要么没安装,要么httpd.conf里的加载配置有问题。你需要检查httpd.conf中是否存在这行:

LoadModule jk_module modules/mod_jk.so

注意modules/mod_jk.so的路径要和你实际的mod_jk文件路径一致。

2. 验证workers.properties配置的正确性

确保workers.properties里的Tomcat节点配置准确,比如:

worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009

同时要确认httpd.conf里指定了workers.properties的正确路径,比如:

JkWorkersFile /etc/httpd/conf/workers.properties

(路径根据你实际存放workers.properties的位置调整)

3. 重点检查Apache的请求转发规则

这是最容易踩坑的地方!你需要明确告诉Apache:哪些请求要转发给Tomcat。

  • 如果想让整个域名的请求都转发到Tomcat,在httpd.conf或对应虚拟主机配置里添加:
    JkMount /* worker1
    
  • 如果你的WAR部署后访问路径是/FINAL_WE(Tomcat会自动解压WAR为同名目录),就只转发这个路径的请求:
    JkMount /FINAL_WE/* worker1
    

特别注意:如果你的域名配置了虚拟主机(<VirtualHost>块),一定要把转发规则写在对应的虚拟主机配置里,否则全局配置可能被虚拟主机的规则覆盖。

4. 检查Apache默认页面的优先级

Apache默认会优先加载根目录下的index.html(也就是那个测试页),如果你的Tomcat项目默认页是index.jsp或其他,需要调整DirectoryIndex的顺序:

DirectoryIndex index.jsp index.html

或者干脆删除Apache根目录下的测试用index.html文件。

5. 确认Tomcat本身能正常提供服务

先绕开Apache,直接访问Tomcat的端口验证项目是否正常:

http://你的服务器IP:8080/FINAL_WE

如果能正常打开你的项目,说明Tomcat部署没问题,问题100%出在Apache的转发配置上;如果打不开,再回头检查catalina.out日志里的部署细节。

6. 重启服务的正确顺序

建议按这个顺序操作,避免Tomcat未就绪时Apache就开始转发请求:

  1. 停止Tomcat:sh /opt/code/apache-tomcat-8.5.54/bin/shutdown.sh
  2. 停止Apache:service httpd stop
  3. 启动Tomcat,等catalina.out日志显示Server startup in XXXX ms确认启动完成
  4. 启动Apache:service httpd start

内容的提问来源于stack exchange,提问作者user12225102

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 11:07:45