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"
               />
相关推荐
方也_arkling6 小时前
【Java-Day08】static / final / 枚举
java·开发语言
橙淮6 小时前
Spring Bean作用域与生命周期全解析
java·spring
Chengbei116 小时前
一站式源码安全检测工具、云安全 / APP / 小程序源码敏感信息递归多层目录扫描AK、JWT、手机号、身份证等敏感信息
java·开发语言·安全·web安全·网络安全·系统安全·安全架构
llz_1126 小时前
web-第一次课后作业
java·开发语言·idea
秋96 小时前
Java项目运行5天左右自动宕机:系统性定位与解决方案
java·开发语言·python
小江的记录本7 小时前
【JVM虚拟机】垃圾回收GC:垃圾收集器:CMS:核心原理、回收流程、优缺点、废弃原因(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·spring·面试·maven
DIY源码阁7 小时前
JavaSwing学生成绩管理系统 - MySQL版
java·数据库·mysql·eclipse
basketball6168 小时前
C++ NULL 和 nullptr 区别 以及 nullptr 的核心实现
java·开发语言·c++
JAVA面经实录9179 小时前
MyBatis面试题库
java·mybatis
小江的记录本9 小时前
【JVM虚拟机】垃圾回收GC:垃圾回收算法:标记-清除、标记-复制、标记-整理、分代收集(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·算法·安全·面试