apache代理到tomcat保持活力混乱

Pat*_*ick 7 apache tomcat ajp keep-alive

我有一个apache 2.2服务器面前的tomcat 6服务器.在apache上使用mod_proxy_ajp来代理对tomcat的请求.相当标准的设置.

如果我需要为浏览器禁用keep-alive连接,我该怎么做?

我需要禁用保持活动的http请求,因为我怀疑我的一些用户的防火墙可能会丢弃一个随机导致问题的非活动保持连接.

apache和tomcat上有各种"keep alive"位和配置.

httpd.conf有"KeepAlive Off"(在我的情况下似乎没有什么区别)

你也可以在httpd.conf中设置ProxyPass,你可以有一个参数"keepalive",但是如果我的apache和tomcat之间有代理/防火墙,这只会有所帮助,这在我的情况下不存在并且不是问题.

Tomcat本身,http连接器具有"keepAliveTimeout"和"maxKeepAliveRequests",但这仅适用于http连接器.

tomcat ajp连接器也有一个"keepAliveTimeout",但是这是来自apache的ajp请求,不确定这是否应该/流向从浏览器到apache的真实HTTP请求.

最重要的是,还有HTTP1.0与HTTP1.1的区别.

所以它让人感到困惑....有人可以解释一下吗?

小智 12

有(至少)四个"保持活着".

  1. 客户端浏览器和Apache之间的HTTP层保持活跃.(在HTTP/TCP连接中启用多个客户端请求."KeepAlive"指令进行配置.)

  2. 客户端浏览器和Apache之间的TCP层保持活跃.(为了避免连接被防火墙关闭,请定期发送空数据包(默认情况下在Linux中大约2小时).我不知道如何在Apache中配置.)

  3. Apache和Tomcat之间的AJP层保持活跃.(在AJP/TCP连接中启用多个Apache请求.要配置"ProxyPass"的"max"和"smax"选项.)

  4. Apache和Tomcat之间的TCP层保持活跃.(与2相同,但是对于Apache和Tomcat之间的防火墙."keepalive"选项用于配置"ProxyPass"指令.)

因此,您的配置("KeepAlive off")可能对客户端和Apache中的防火墙正常工作.使用"%X"作为"LogFormat"指令来检查是否禁用了keep-alive(上面的类型1).

顺便说一句,我认为当"KeepAliveTimeout"不是那么大时,防火墙的连接关闭不会导致严重的问题.如果您没有问题(警告信息除外),我认为您可能会原样离开.