本文主要是介绍Apache + Tomcat + ajp 协议配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前端 web 服务器使用 apache 的好处就不在赘述,这里重点讲一下如何使用 ajp 协议和 http 协议与后端 tomcat 服务器通信的区别。
apache作为代理服务器可以使用 http 协议与后端 tomcat 服务器进行通信,也可以使用 ajp 协议与 tomcat 通信。两者的主要区别如下:
ajp:使用二进制进行通信,拥有极高的效率,同时也会耗费更多的系统资源;
http:使用超文本与 tomcat 通信,效率略差,但是灵活性更高;
根据经验,ajp 大约可以提高 20% 的运行效率,但是如果你考虑到以后更换前端代理服务器的话,就不要使用 ajp 协议了,http 协议可能是最好的选择,因为更通用。
apache中的配置大致如下:
<VirtualHost *:80>ServerName www.eagsen.comProxyRequests OffProxyPreserveHost OnProxyPass / ajp://172.17.0.3:8009/project/ProxyPassReverse / ajp://172.17.0.3:8009/project/ProxyPassReverseCookiePath / /ErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
apache 配置以后,tomcat 的 server.xml 配置中,取消如下配置的注释:
<Connector protocol="AJP/1.3"address="::"port="8009"redirectPort="8443"maxParameterCount="1000"/>
到这里,你访问 www.eagsen.com 时,仍然会发生 500 错误,因为 tomcat 中还有一个安全验证的机制,如果没有其他更高级的验证,则需要显示地取消,就是在上述配置中增加一个 secretRequired="false" ,完整的配置如下:
<Connector protocol="AJP/1.3"address="::"port="8009"secretRequired="false"redirectPort="8443"maxParameterCount="1000"/>
这篇关于Apache + Tomcat + ajp 协议配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!