通过HAProxy标准化接受编码以优化鱿鱼命中率

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

我们通过URI来平衡HAProxy来优化Squid命中率,但是我们知道Squid基于浏览器传递给它的Accept-Encoding头来保存每个页面的不同副本,所以IE(gzip,deflate)将会拥有与Firefox(gzip,deflate)或Chrome(gzip,deflate,sdch)不同的caching页面副本。

我们想规范Accept-Encoding头文件,我认为最好的地方是在HAProxy中。 我会很感激,如果有人可以提供一些想法如何做到这一点,而不打破支持客户端没有gzip或deflate支持。

那么,也许你只是想用“gzip,deflate”replace“gzip,deflate,anything”?

你可以这样做:

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

另外,如果您使用的是大型的鱿鱼农场,您可能会对haproxy 1.4的一致性哈希感兴趣。 它避免在添加或删除服务器时重新平衡每个人,以便服务器转换更加顺畅。