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

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

我有 3 条隧道通向运行 squid3 的 Debian(端口 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 行出现 FAIL。我也尝试了parentsibling同样失败。

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

任何想法?

答案1

您应该指定姓名每个选项缓存对等体. 引自cache_peer 文档

name=xxx --- 对等体的唯一名称。如果同一主机上有多个对等体但端口不同,则需要此名称。

所以你的缓存对等体配置应该是这样的

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

答案2

最终解决了问题!

编辑/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

如果您认为有更好的解决方案,请随意:)

相关内容