Squid 负载平衡与反向代理冲突

Squid 负载平衡与反向代理冲突

我在配置 Squid 3.3 在多个 WAN 链路上进行“负载平衡”时遇到了困难(使用随机 ACL+tcp_outgoing_address选项)并且还可以拥有“反向代理”。

当我配置其中一个(负载平衡)或另一个(反向代理)时,它可以正常工作,但是当同时配置两者时,反向代理不再正常工作。

数据包捕获显示,通常会在 LAN 接口上发出的反向代理流量现在被输出到 WAN 接口(因此不会到达 LAN 上的内部主机)。显然,关于“tcp_outgoing_address“设置也适用于反向代理流量,而不仅仅是正向代理流量。

以下是我用于负载平衡配置的内容:

acl fiftyPercent random 0.5
tcp_outgoing_address <<WAN1-IP-HERE>> fiftyPercent
tcp_outgoing_address <<WAN2-IP-HERE>>

参考 -http://wiki.squid-cache.org/Features/AclRandom

我对 Squid 了解太少,搜索了无数帖子却一无所获(目前为止)。有人知道我如何才能将负载平衡应用于正向代理流量,同时仍让反向代理流量像未设置一样工作吗?

答案1

为反向代理流量创建 ACL 并进行设置tcp_outgoing_address <<LAN-IP-HERE>>

答案2

我知道如何解决我的问题。

虽然 drookie 建议为反向代理创建 ACL 并将标签应用于tcp_outgoing_address它,这似乎很明显,但我不知道从哪里开始,更不用说如何定义/处理 ACL 了。

首先,我必须弄清楚 Squid.conf 是如何解释的(即,对于第一个匹配的 ACL,从上到下)以及各种“标签”的含义。我发现以下链接非常有用,可以让我掌握一些基础知识:http://www.deckle.co.uk/squid-users-guide/squid-configuration-basics.html

在理解了我们的 Squid.conf 之后,我发现现有的反向代理配置已经定义了 ACL(它需要用于标签cache_peer_access)。

然后我弄清楚了 Squid 如何解释这些内容(即顺序、优先级、覆盖等)。

我需要做的就是添加以下内容(每行代表已定义的每个反向代理 ACL。192.168.0.254 是我的 LAN 侧接口的 IP):

tcp_outgoing_address 192.168.0.254 OWA_URI_pfs
tcp_outgoing_address 192.168.0.254 rvm_Extranet
tcp_outgoing_address 192.168.0.254 rvm_Prototype
tcp_outgoing_address 192.168.0.254 rvm_WebService
tcp_outgoing_address 192.168.0.254 rvm_License

接下来可以进行如下操作:

acl fiftyPercent random 0.5
tcp_outgoing_address <<WAN1-IP-HERE>> fiftyPercent
tcp_outgoing_address <<WAN2-IP-HERE>>

结果是反向代理流量从指定的 LAN 侧 IP 出去,然后所有其他流量的剩余部分通过 ACL 进行负载平衡random

希望这可以为遇到类似问题的人提供帮助。

相关内容