当我们访问国外网站比较慢的时候,可以通过设置代理访问,那么我们自己的代理服务器能否也设置别人的代理来访问国外的网站呢?答案是肯定的。
例如有代理proxy1.cnlinux.net能以较快的速度访问国外,且我们访问它也比较快,所以我们用它来作为我们访问国外网站的上层代理。
我们需要在squid.conf中添加如下参数:
<主机名称/地址> <类别> <其他参数>
类别主要有上层的parent和同一层的sibling两种,我们这里主要介绍的是上层代理,就是parent,如果你需要架设代理服务器集群的话可以采用sibling,这里我们就不做讨论了。
其他参数有:
proxy-only :只向上层代理要资料,自己不缓存到本地proxy中。
weight=n :比重,当我们设置多台上层代理的时候,这几台代理的功能都相同的,可以通过设置此项来决定那台上层代理比较重要,n越大表示越重要。
no-query :当使用sibling类别的时候,向同一层的proxy索要资料的时候就会向其送出icp请求,可以使用no-query来取消icp请求,一般我们向上层proxy请求资料的时候可以不需要发送icp包,以降低流量。
default :表示将这台proxy设置为默认proxy
no-netdb-exchange :表示不向proxy送出imcp包的请求。
no-digest :表示不纪录向上层proxy提交的请求。
#上层proxy设置
cache_peer proxy1.cnlinux.net parent 3128 3130 no-digest no-netdb-exchange
#设置访问规则,可以用域名,也可以用IP
acl usa dstdomain .com.us #美国.com.us的网站
acl usaip dst 18.0.0.0/8 #美国的部分IP段
(T002)
#放行禁止规则
cache_peer_access proxy1.cnlinux.net allow usa #允许usa规则使用此上层proxy
cache_peer_access proxy1.cnlinux.net deny !usa #禁止所有非usa规则使用此上层proxy
cache_peer_access proxy1.cnlinux.net allow usaip
cache_peer_access proxy1.cnlinux.net deny !usaip