Keep-alive不适用于在Linode中使用NodeBalancer的网站

我有我的linode切片下面的configuration

NB <—–> web1 + web2 + web3这里是linode的configuration截图: 在这里输入图像说明

我们需要NB模式,因为我们需要一些简单的TCP模式不给的东西。

现在我的问题是:当我运行像webpagetest.org为基准的目的,我总是得到消息,我的域名运行静态资产没有keepalives。 在TCP模式下,keepalive很好。

我知道haproxy在linode中是作为nodebalancer工作的。 我只是想知道“这是NB / haproxy已知的限制,还是我做错了什么?

如果我正确理解你的问题,你说的NodeBalancer是基于HAProxy。 我找不到任何文件说明是这样的。

1.4之前版本的HAProxy不支持HTTP Keep-Alive。 版本1.4在2010年2月发布。如果NodeBalancer实际上build立在HAProxy上,并且使用1.3版本,那么它将不支持客户端和NodeBalancer之间的HTTP Keep-Alive。

客户端保活是有用的,因为它节省了每个HTTP请求一个往返时间。 结合Keep-Alive和stream水线可以在两个往返时间(一个用于TCP设置,一个用于一堆HTTP请求),而不是两个没有它们的资源提供多个请求。 这是对事物的简化看法,但是是一个体面的经验法则。

代理支持的东西很less,代理和后端服务器之间保持活跃。 这在客户端是不可见的,但会导致一些额外的数据包被传输。 代理和后端服务器之间的往返时间通常非常短,与客户端保持活跃无关。

根据Linode节点平衡器文档

TCP:使用TCP模式来平衡非HTTP服务。

HTTP: HTTP KeepAlive在HTTP模式下被强制closures

HTTPS:selectHTTPS后,NodeBalancer将终止SSL连接。 与HTTP模式一样,KeepAlives将被禁用,客户端的IP地址将在X-Forwarded-For头中提供。