squid 在做爬虫代理时候,我们只需要做到一个 squid 代理,然后对其他代理做转发轮询,如何使用 squid 做代理并自动转发轮询?
加上这行代码:
cache_peer 120.xx.xx.32 parent 80 0 no-query weighted-round-robin weight=2 connect-fail-limit=2 allow-miss max-conn=5 name=proxy-90
注意,当 120.xx.xx.32
是相同 但是端口不同的时候,必须设置不同的 name,否则会报错cache_peer 120.xx.xx.32 specified twice
这时候及得设置不同的 name
这一行的语法是这样的 cache_peer Web 服务器地址 服务器类型 http 端口 icp 端口 [可选项], 可选项包括:
proxy-only:指明从 peer 得到的数据在本地不进行缓存,缺省地,squid 是要缓存这部分数据的;
weight=n:用于你有多个 peer 的情况,这时如果多于一个以上的 peer 拥有你请求的数据时,squid 通过计算每个 peer 的 ICP 响应时间来 决定其 weight 的值,然后 squid 向其中拥有最大 weight 的 peer 发出 ICP 请求。也即 weight 值越大,其优先级越高。当然你也可以手工 指定其 weight 值;
no-query:不向该 peer 发送 ICP 请求。如果该 peer 不可用时,可以使用该选项;
Default:有点象路由表中的缺省路由,该 peer 将被用作最后的尝试手段。当你只有一个父代理服务器并且其不支持 ICP 协议时,可以使用 default 和 no-query 选项让所有请求都发送到该父代理服务器;
login=user:password:当你的父代理服务器要求用户认证时可以使用该选项来进行认证。
更新完成后保存重启 squid,就会发现 squid 已经正常可用了。