Apache + Tomcat + ajp 协议配置

前端 web 服务器使用 apache 的好处就不在赘述,这里重点讲一下如何使用 ajp 协议和 http 协议与后端 tomcat 服务器通信的区别。

apache作为代理服务器可以使用 http 协议与后端 tomcat 服务器进行通信,也可以使用 ajp 协议与 tomcat 通信。两者的主要区别如下:

ajp:使用二进制进行通信,拥有极高的效率,同时也会耗费更多的系统资源;

http:使用超文本与 tomcat 通信,效率略差,但是灵活性更高;

根据经验,ajp 大约可以提高 20% 的运行效率,但是如果你考虑到以后更换前端代理服务器的话,就不要使用 ajp 协议了,http 协议可能是最好的选择,因为更通用。

apache中的配置大致如下:

XML 复制代码
<VirtualHost *:80>
        ServerName www.eagsen.com

        ProxyRequests Off
        ProxyPreserveHost On

        ProxyPass / ajp://172.17.0.3:8009/project/
        ProxyPassReverse / ajp://172.17.0.3:8009/project/
	    ProxyPassReverseCookiePath / /

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

apache 配置以后,tomcat 的 server.xml 配置中,取消如下配置的注释:

XML 复制代码
    <Connector protocol="AJP/1.3"
               address="::"
               port="8009"
               redirectPort="8443"
               maxParameterCount="1000"
               />

到这里,你访问 www.eagsen.com 时,仍然会发生 500 错误,因为 tomcat 中还有一个安全验证的机制,如果没有其他更高级的验证,则需要显示地取消,就是在上述配置中增加一个 secretRequired="false" ,完整的配置如下:

XML 复制代码
    <Connector protocol="AJP/1.3"
               address="::"
               port="8009"
                secretRequired="false"
               redirectPort="8443"
               maxParameterCount="1000"
               />
相关推荐
就叫_这个吧4 小时前
Java递归方法实现面包屑导航
java·开发语言
fīɡЙtīиɡ ℡4 小时前
AI 应用系统设计
java·开发语言·人工智能
城管不管4 小时前
重生——第十一次面试之挖财一面2026.8.19已OC
java·服务器·jvm·数据库·spring·面试·职场和发展
码匠许师傅4 小时前
【C++ 面试真题】26. 聊聊 C++ 的智能指针
java·c++·面试
AI绘画哇哒哒5 小时前
【建议收藏!】35岁后端血泪忠告,这3类人别硬转Agent(过来人亲述)
java·人工智能·后端·ai·程序员·大模型·agent
最强小杰5 小时前
gpt-5.6-sol 频繁报 503 怎么办?区分容量熔断和限速 429 的排查方法 + 可复用 retry wrapper
java·人工智能·gpt·ai
吠品7 小时前
Wine 在 Linux 上运行 Windows 软件完整指南
java·linux·服务器
亚历克斯神8 小时前
智能搜索系统的升级复盘——从 Elasticsearch 到混合检索的检索质量提升
java·spring·微服务
金銀銅鐵9 小时前
[Java] 一个方法最多可以有多少个入参?
java·jvm
哭哭啼10 小时前
JAVA服务问题诊断
java·开发语言·jvm