保持活动超时不受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.