![Squid 每次请求时都会随机传出 IP 地址](https://linux22.com/image/748138/Squid%20%E6%AF%8F%E6%AC%A1%E8%AF%B7%E6%B1%82%E6%97%B6%E9%83%BD%E4%BC%9A%E9%9A%8F%E6%9C%BA%E4%BC%A0%E5%87%BA%20IP%20%E5%9C%B0%E5%9D%80.png)
我有一台有 10 个 IPv4 地址的服务器,我希望 Squid 随机挑选其中一个 IPv4 地址用于每个请求。
我当前的配置如下:
acl random1 random 1/10
acl random2 random 1/10
acl random3 random 1/10
acl random4 random 1/10
acl random5 random 1/10
acl random6 random 1/10
acl random7 random 1/10
acl random8 random 1/10
acl random9 random 1/10
acl random10 random 1/10
tcp_outgoing_address 10.0.0.2 random1
tcp_outgoing_address 10.0.0.3 random2
tcp_outgoing_address 10.0.0.4 random3
tcp_outgoing_address 10.0.0.5 random4
tcp_outgoing_address 10.0.0.6 random5
tcp_outgoing_address 10.0.0.7 random6
tcp_outgoing_address 10.0.0.8 random7
tcp_outgoing_address 10.0.0.9 random8
tcp_outgoing_address 10.0.0.10 random9
tcp_outgoing_address 10.0.0.11 random10
但这会像 96% 的请求一样不断重复服务器的主 IPv4 地址。
有什么方法可以避免这种情况吗?
答案1
选择随机值的方式,选择每个 IP 地址的概率遵循几何分布如果要统一选择它们,则选择一个 IP 地址(知道前面的 IP 地址已被丢弃)的概率必须是:1/9
对于第二个,1/8
对于第三个,依此类推:
acl random1 random 1/10
acl random2 random 1/9
acl random3 random 1/8
acl random4 random 1/7
acl random5 random 1/6
acl random6 random 1/5
acl random7 random 1/4
acl random8 random 1/3
acl random9 random 1/2
tcp_outgoing_address 10.0.0.2 random1
tcp_outgoing_address 10.0.0.3 random2
tcp_outgoing_address 10.0.0.4 random3
tcp_outgoing_address 10.0.0.5 random4
tcp_outgoing_address 10.0.0.6 random5
tcp_outgoing_address 10.0.0.7 random6
tcp_outgoing_address 10.0.0.8 random7
tcp_outgoing_address 10.0.0.9 random8
tcp_outgoing_address 10.0.0.10 random9
tcp_outgoing_address 10.0.0.11