可以使用负载均衡器启用Keep-alive吗?

时间:2011-11-21 18:04:27

标签: load-balancing keep-alive

我正在尝试使用Google的Page Speed API优化我的网络应用程序,该API强调我的HTTP响应标头中没有“保持活动”作为主要页面速度的弱点。

在与我的后端开发人员和系统管理员交谈时,他们告诉我在网站上使用Keep-alive是不可能的,因为我们使用负载均衡器。

我想知道,这是准确的吗?是否有支持Keep-alive的负载平衡器?

对我而言,如果无法使用负载均衡器,Page Speed API会抱怨Keep-alive,这一点似乎很奇怪,因为我认为相当数量的应用程序和大型站点都使用负载均衡器。

谢谢!

1 个答案:

答案 0 :(得分:6)

我不知道你有什么类型的负载均衡器...但我认为它不会阻止使用保持活动连接。

负载均衡器将处理与其中一个后端服务器的每个传入连接。现在,对于每个对象,浏览器只需要创建一个新连接来获取该对象(例如所有小图像)。建立和关闭TCP连接需要一些时间。这就是Google Page Speed建议保持活力的原因。另一种选择是将所有小图像放入一个大图像中,并使用css精灵在页面的不同位置显示其中的一部分。

但回到负载均衡器。如果您有网络负载平衡器,它应该没有任何问题 - 它只会将传入的TCP连接重定向到其中一个后端服务器。如果您有HTTP负载均衡器,它将接受连接,读取请求,将请求发送到后端服务器,等待它回答并将答案发送回浏览器。如果启用keep-alive,则负载均衡器应转发它通过同一连接接收的下一个请求。

对于动态页面,您不需要保持活动状态。 Keep-alive主要用于静态内容(js,images,css),因为每个html页面通常有10个以上的静态对象。所以我建议继续通过负载均衡器提供html,并通过不同的主机名(static.example.com)提供静态内容。