保持活动超时不受Amazon ELB的尊重


9

我在Ubuntu(JDK 1.6)上使用Tomcat 6.0.24,并且该应用程序在HTTPS连接器上进行彗星风格的请求(直接针对Tomcat,不使用APR)。

我想将保持活动时间设置为5分钟,这样我就不必刷新长时间轮询的连接了。这是我的配置:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="1000"  keepAliveTimeout="330000"
        scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" />

不幸的是,服务器似乎在65秒后关闭了连接。来自示例会话的pcap如下所示:

T=0   Client sends SYN to server, handshake etc.
T=65  Server sends FIN to client
T=307 Client sends FIN to server

(我猜想客户端上5分钟的超时是由于HTTP库没有检测到服务器端的套接字关闭,但是无论如何-服务器不应该那么早关闭连接)

(编辑:使用标准HTTP连接器时,此功能可以正常工作)

Answers:


13

亚马逊的ELB(弹性负载平衡器)有一个未记录的(在论坛上除外)60秒的超时,如果没有数据发送,它将断开连接。每隔55秒发送一次空格来进行黑客入侵,直到他们将其设置为可配置状态后,它似乎可以正常工作。


(超时仍然存在,顺便说一句.. jeesh)
sehugg 2010年

仍然无法配置...这是自2009年左右以来的一个悬而未决的问题……
DennisMünkle11年


10

现在记录了关闭连接的负载均衡器超时:

为负载均衡器配置空闲超时设置

  1. 通过https://console.aws.amazon.com/ec2/打开Amazon EC2控制台。
  2. 在导航窗格中的“ 负载平衡”下,单击“ 负载平衡器”
  3. 选择您的负载均衡器。
  4. 在底部窗格中,选择“ 描述”选项卡。
  5. 找到“ 连接设置”,然后单击(编辑)
  6. 在“ 配置连接设置”对话框中,为“ 空闲超时”输入一个值。空闲超时的范围是1到3600秒。
  7. 点击保存

现在,这应该是公认的答案。
jonatan


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.