我们正在为从以下环境移徙做准备:
Apache 2.0.2 -AJP-> JBoss4.2.2
至
Apache2.2.3-??-> JBoss 5.1.0
你怎么把这两个人连在一起?
备选方案有:
选项2是目前最流行的解决方案,因为它似乎意味着更少的处理,因为不再需要转换JBoss来自AJP的响应,CPU时间是我们需要密切关注的基础设施。选项2和3还附带了Red支持的Apache构建。
目前,我无法看到我们选择1,因为我们得到的AJP‘免费’与选项3。
因此,备选方案2和3的利弊是什么?对CPU负载的关注真的是我们需要担心的吗?我们在处理二进制数据(AJP流量)时损失了什么?我们会在减少带宽和IO的情况下恢复吗?
我们的基础设施将在同一台RHEL 5机器上,在私有云中虚拟化的同一台RHEL 5机器上,面对多达9个调优的JBosses (但通常是大约一半)。
提前感谢您的指点/建议。
富足
发布于 2010-09-17 17:11:14
2 mod_proxy_http,除非您需要客户端的主机头。
我不推荐经典的mod_jk,因为它的功能已经被mod_proxy_ajp取代了,正如您自己说的,它需要自己构建和维护该模块。
我认为mod_proxy_http是一个非常干净的解决方案,它使ajp脱离了现实。但是,您应该知道一些从ajp迁移到http的警告。如果您需要访问与apache (包括header)完全相同的服务器头,则应该使用ajp。JBoss将看到来自apache的新http请求,而不是原始客户端。如果您只需要客户端的远程IP,则仍然可以使用apache可以在新请求上设置的特殊头来获得此消息。但是,如果您正在从应用程序层进行虚拟托管,那么使用ajp会更好。
就性能而言,无论是ajp还是http,都需要JBoss和一些本地套接字TCP流量进行一些处理。您必须尝试这两种方法,看看哪种方法更有效,但我认为总的来说,这在服务器总负载中所占的百分比非常小。Http是一个更复杂的协议,ajp是专门为在web和应用程序层之间高效设计的,所以理论上ajp可能更好。尽管如此,我发现除了Tomcat应用服务器之外,http通常得到更好的支持。
我使用mod_proxy_ajp和mod_proxy_http,我没有任何问题。
https://serverfault.com/questions/182289
复制相似问题