反向代理配置过程其实和前面的正向代理没有什么太大区别, 唯一的区别是配置文件中
一个地方需要改动一下。需要把:
http_port 3128
改为:
http_port 80 accel vhost vport
然后再增加你要代理的后端真实服务器信息:
cache_peer 180.97.33.108 parent 80 0 originserver name=a
cache_peer 101.226.103.106 parent 80 0 originserver name=b
cache_peer_domain a www.qq.com
cache_peer_domain b www.baidu.com
因为咱们之前没有配置网站信息,所以就拿 qq.com 和 baidu.com 来做个例子吧。其中
cache_peer 为配置后端的服务器 ip 以及端口,name 后边为要配置的域名,这里和后面的
cache_peer_domain 相对应。实际的应用中,ip 大多为内外 ip,而域名也许会有多个,如果
是 squid 要代理一台 web 上的所有域名,那么就写成这样:
cache_peer 192.168.10.111 parent 80 0 originserver
后面连 cache_peer_domain 也省了。
反向代理主要用于缓存静态项, 因为诸多静态项目尤其是图片、 流媒体等比较耗费带宽,
在中国, 联通网访问电信的资源本例就慢, 如果再去访问大流量的图片、 流媒体那更会慢了,
所以如果在联通网配置一个 Squid 反向代理,让联通客户端直接访问这个联通 Squid,而这
些静态项已经被缓存在了 Squid 上,这样就大大加快了访问速度。也许你听说过 CDN, 其实
它的设计原理就是这样的思路。好了,我们再测一测反向代理吧。
因为修改了配置文件,所以需要重启一下 squid:
# /etc/init.d/squid restart
# curl -xlocalhost:80 http://www.baidu.com/
# curl -xlocalhost:80 http://www.qq.com/
# curl -xlocalhost:80 http://www.sina.com/
你会发现,baidu.com 和 qq.com 都能正常访问,然而 sina.com 访问 503 了,这是因为我
们并没有加 sina.com 的相关设置。
注意:因为只绑定了一个IP和域名,并且host中也指到反向代理服务器。所以可以访问。但是其他域名如:teiba.baidu.com没有再配置中配置,而且也没有再host中指定,所以访问的是真实的地址,没有通过代理,可以访问。如果host指定,配置中没有配置相应的配置,走代理是不通的。
原文:http://llzdwyp.blog.51cto.com/6140981/1696401