我想设置一个 Squid 反向代理,将 HTTP 流量拆分到两个 Web 服务器以实现负载平衡,并让其使用持久性(因此,如果用户通过第一个请求到达 Web 服务器 1,那么他们的第二个请求也会发送到 Web 服务器 1。)
我曾经使用过的其他反向代理解决方案都是通过向 HTTP 流中注入会话 cookie 来实现此目的的;如何使用 squid 来实现此目的?
答案1
假设您的服务器位于 10.0.0.51 和 10.0.0.52。您需要以下内容:
cache_peer 10.0.0.51 parent 80 0 no-query originserver sourcehash
cache_peer 10.0.0.52 parent 80 0 no-query originserver sourcehash
它会对客户端的 IP 地址进行哈希处理,并根据该哈希将给定客户端的每次请求引导到同一个上游服务器(只要上游服务器保持运行)。
答案2
Squid 不是一个好的负载平衡器。它只是没有必要的功能。使用(或说服决策者)HAProxy。