本文作者:深夜的蚊子
本文链接:
版权所有。转载时请以链接形式注明作者和原始出处及本声明,谢谢
上次我说了使用squid自己的堆叠机制实现提高squid使用率的方法,这次再来说说和nginx搭配使用提高多台squid的使用率,目标当然是使用有限的squid服务器,缓存住更多的静态文件。
nginx本身是不支持url_hash的,需要打第三方的patch,下载地址
首先进到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
测试网站我反向代理
这样nginx上编译完成需要配置,内容如下
http {
upstream {
server 192.168.211.128;
server 192.168.211.129;
hash $request_uri;
}
server {
listen 80;
server_name ;
location / {
proxy_pass http: / /bbs.tgbus.com;
}
}
}
然后启动nginx
两个squid就配置成标准的反向代理就可以了,主要配置如下
cache_peer 61.152.242.1 parent 80 0 no -digest no -query originserver name=www
cache_peer_domain www
然后启动squid
修改自己电脑的hosts,把的ip指向到nginx那台虚拟机的ip上,接下来就可以测试了
打开两台squid的日志,用tail -f的方式,然后访问,可以看到两边的日志的内容是不一样的,从其中一台squid的日志中找一条静态文件的url,通过ie 打开,可以发现,这个url的访问只投到同一台squid上,如此实现了,squid缓存的内容不同,从而增加了squid的缓存容量
当然,如果中间只使用一台nginx,自然这台会成为单点而造成隐患,所以可是使用heartbeat做成双机,增加系统的可靠性。
阅读(1002) | 评论(0) | 转发(0) |