squid3失败,在127.0.0.1不同的端口上使用cache_peer循环

我有3个隧道结束到Debian运行squid3(端口9001至9003)。 每个隧道开始时运行一个代理。 我试图通过这种方式来平衡这些代理:

http_access allow all http_port 4128 cache_peer 127.0.0.1 sibling 9001 round-robin cache_peer 127.0.0.1 sibling 9002 round-robin cache_peer 127.0.0.1 sibling 9003 round-robin 

当我重新启动squid3在第3行得到失败。我也尝试parent而不是sibling 。 同样失败。

仅供参考,如果我将客户端设置为端口为9001或9002或9003的debian IP,则工作正常。

任何想法?

您应该为每个cache_peer指定名称选项。 从cache_peer文档引用:

name = xxx —对等体的唯一名称。 如果在同一个主机上有多个对等端但不同的端口,则这是必需的

所以你的cache_peerconfiguration应该是这样的

 cache_peer 127.0.0.1 parent 9001 0 name=A round-robin no-query no-digest cache_peer 127.0.0.1 parent 9002 0 name=B round-robin no-query no-digest cache_peer 127.0.0.1 parent 9003 0 name=C round-robin no-query no-digest cache_peer 127.0.0.1 parent 9004 0 name=D round-robin no-query no-digest 

最终工作解决scheme

编辑/etc/hosts并添加:

 127.0.0.1 tunnelproxy1 127.0.0.1 tunnelproxy2 127.0.0.1 tunnelproxy3 127.0.0.1 tunnelproxy4 

然后去/etc/squid3/squid.conf和:

 http_access allow all http_port 3128 cache_peer tunnelproxy1 parent 9001 0 round-robin no-query no-digest cache_peer tunnelproxy2 parent 9002 0 round-robin no-query no-digest cache_peer tunnelproxy3 parent 9003 0 round-robin no-query no-digest cache_peer tunnelproxy4 parent 9004 0 round-robin no-query no-digest never_direct allow all 

如果你觉得有更好的解决方法,请免费下载:)