使用nginx的url_hash提高squid的使用率
时间:2009-02-03 来源:liuhanzhao
上次我说了使用squid自己的堆叠机制实现提高squid使用率的方法,这次再来说说和nginx搭配使用提高多台squid的使用率,目标当然是使用有限的squid服务器,缓存住更多的静态文件。
nginx本身是不支持url_hash的,需要打第三方的patch,下载地址http://wiki.codemongers.com/NginxHttpUpstreamRequestHashModule?action=AttachFile&do=get&target=nginx_upstream_hash-0.3.tar.gz
首先进到nginx的目录
执行patch -p0 < /path/to/upstream/hash/directory/nginx.patch
然后在安装的时候加上 --add-module=path/to/upstream/hash/directory
我的测试环境vmvare 模拟3个linux ip分别:nginx 192.168.211.130 squid01 192.168.211.128 squid02 192.168.211.129 测试网站我反向代理www.tgbus.com
这样nginx上编译完成需要配置,内容如下
然后启动nginx
两个squid就配置成标准的反向代理就可以了,主要配置如下
然后启动squid
修改自己电脑的hosts,把www.tgbus.com的ip指向到nginx那台虚拟机的ip上,接下来就可以测试了
打开两台squid的日志,用tail -f的方式,然后访问www.tgbus.com,可以看到两边的日志的内容是不一样的,从其中一台squid的日志中找一条静态文件的url,通过ie打开,可以发现,这个url的访问只投到同一台squid上,如此实现了,squid缓存的内容不同,从而增加了squid的缓存容量
当然,如果中间只使用一台nginx,自然这台会成为单点而造成隐患,所以可是使用heartbeat做成双机,增加系统的可靠性。
然后在安装的时候加上 --add-module=path/to/upstream/hash/directory
我的测试环境vmvare 模拟3个linux ip分别:nginx 192.168.211.130 squid01 192.168.211.128 squid02 192.168.211.129 测试网站我反向代理www.tgbus.com
这样nginx上编译完成需要配置,内容如下
http { |
cache_peer 61.152.242.1 parent 80 0 no-digest no-query originserver name=www |
相关阅读 更多 +
排行榜 更多 +