使用mod_jk
和mod_proxy
作为Apache与Tomcat实例连接的前端,有哪些优缺点?
我已经在生产环境中使用mod_jk多年了,但我听说这是“旧方法”来连接Tomcat。我应该考虑更改吗?会有任何好处吗?
这些模块的优缺点比较可以在http://blog.jboss.org/上找到。
mod_proxy
* Pros:
o No need for a separate module compilation and maintenance. mod_proxy,
mod_proxy_http, mod_proxy_ajp and mod_proxy_balancer comes as part of
standard Apache 2.2+ distribution
o Ability to use http https or AJP protocols, even within the same
balancer.
* Cons:
o mod_proxy_ajp does not support large 8K+ packet sizes.
o Basic load balancer
o Does not support Domain model clustering
mod_jk
* Pros:
o Advanced load balancer
o Advanced node failure detection
o Support for large AJP packet sizes
* Cons:
o Need to build and maintain a separate module
mod_proxy_ajp
支持使用ProxyIOBufferSize
来支持更大的数据包大小,而且在过去的十年中,mod_proxy
的功能也有了很大的改进。 - Christopher Schultz使用mod_jk
时,使用的是AJP
协议。而使用mod_proxy
时则会使用HTTP
或HTTPS
协议。这就是两者之间的本质区别。
Apache JServ Protocol(AJP)是一种二进制协议,可以将从Web服务器接收的请求代理到Web服务器后面的应用服务器。 AJP是高度可信的协议,不应向不受信任的客户端公开,否则可能会被用于获取敏感信息或在应用服务器上执行代码。
HTTP作为客户机-服务器计算模型中的请求-响应协议。例如,Web浏览器可能是客户端,而运行在托管网站的计算机上的应用程序可能是服务器。客户端向服务器提交HTTP请求消息。服务器(提供诸如HTML文件和其他内容的资源,或代表客户端执行其他功能)向客户端返回响应消息。响应包含有关请求完成状态的信息,并且还可以在其消息正文中包含请求的内容。
mod_proxy_*
变体时遇到了更多的问题,而在生产环境中成功地使用了mod_jk
,包括Tomcat(5.5、6、7)和JBoss/WildFly。 - mirabilos