我有 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。我也尝试了parent
。sibling
同样失败。
仅供参考,如果我将客户端设置为 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
如果您认为有更好的解决方案,请随意:)