通过 HAProxy 规范化 Accept-Encoding,以优化 Squid 命中率

通过 HAProxy 规范化 Accept-Encoding,以优化 Squid 命中率

我们的网站基础设施使用 HAProxy 进行负载平衡,使用 Squid 集群进行缓存,应用程序数据位于 IIS 集群上。

我们通过 URI 对 HAProxy 进行负载平衡,以优化 Squid 命中率,但我们知道 Squid 根据浏览器传递给它的 Accept-Encoding 标头保存每个页面的不同副本,因此 IE(gzip、deflate)将具有与 Firefox(gzip、deflate)或 Chrome(gzip、deflate、sdch)不同的缓存页面副本。

我们想要规范化 Accept-Encoding 标头,我认为最好的地方是 HAProxy。如果有人能提供一些想法,说明如何在不破坏对不支持 gzip 或 deflate 的客户端的支持的情况下实现这一点,我将不胜感激。

答案1

好吧,也许您只是想用“gzip,deflate”替换“gzip,deflate,anything”?

你可以这样做:

reqirep ^Accept-Encoding:\ gzip,[\ ]*deflate,.* Accept-Encoding:\ gzip,\ deflate

此外,如果您使用的是大型 squid 农场,您可能会对 haproxy 1.4 的一致性哈希感兴趣。它可避免在您添加或删除服务器时重新平衡所有人,从而使服务器转换更加顺畅。

相关内容