我们的网站基础架构使用 HAProxy 进行负载平衡,使用 Squid 集群进行缓存,应用程序数据位于 IIS 集群上。
我们通过 URI 对 HAProxy 进行负载平衡以优化 Squid 的命中率,但我们知道 Squid 根据浏览器传递给它的 Accept-Encoding 标头持有每个页面的不同副本,因此 IE (gzip, deflate) 将有与 Firefox (gzip,deflate) 或 Chrome (gzip,deflate,sdch) 不同的缓存页面副本。
我们想要规范化 Accept-Encoding 标头,我认为这样做的最佳位置是在 HAProxy 中。如果有人能提供一些关于如何在不破坏对没有 gzip 或 deflate 支持的客户的支持的情况下实现这一点的想法,我将不胜感激。
好吧,也许你只想用 "gzip,deflate" 替换 "gzip,deflate,anything" ?
你可以这样做:
此外,如果您使用的是大型鱿鱼养殖场,您可能会对 haproxy 1.4 的一致哈希感兴趣。它避免了在您添加或删除服务器时重新平衡每个人,从而使服务器转换更加顺畅。