Nginx Url Hash算法问题

2011-01-12

利用 Nginx 做Squid前端URL Hash可以大大提高 Squid的命中率,并且可以对squid 磁盘利用提高。

之前,我一直使用upstream_hash模块进行URL Hash的。但是,发现问题在增加一台Squid的时候。Squid缓存命中大幅度降低。

Haproxy本身实现了Map-based 和consistent hash算法。所以,有些朋友并没有发现此类问题。

** 本人原则,对问题要找出根本原因。而不是,轻易的更换软件。**

hash 算法:

1, 减少一台squid nginx 会进行 rehash 将 url 重新分布到其他的squid 上

2, 增加一台 squid 余数分布式算法会导致服务器的键发生巨大变化。导致缓存命中率下降

consistent hash 算法:

1,减少一台squid 同样nginx 会进行 rehash 将 url 重新分布到其他的 squid 上

2,增加一台 squid consistent hash 算法只会影响 服务器地点逆时针方向的第一台服务器上的键。