我知道 haproxy 可以为负载平衡 Web 服务器执行 ssl 终止,但是在负载平衡 squid 代理服务器时可以执行 ssl 终止吗?
我的情况是,我有几个地理位置不同的 squid 服务器,我希望根据最终用户请求的域名将代理请求转发到 squid 服务器。
例如,如果一个在代理设置中设置了我们的 haproxy 负载均衡器的用户请求https://www.google.fr,haproxy 解密 SSL CONNECT 请求,看到用户已请求 google.fr,然后将他们的请求转发到我们位于法国的 squid 服务器(例如 fr1.squidproxy.com)。
答案1
例如,如果在代理设置中设置了我们的 haproxy 负载均衡器的用户请求 https://www.google.fr,则 haproxy 会解密 SSL CONNECT 请求,看到用户已请求 google.fr,然后将他们的请求转发到我们位于法国的 squid 服务器(例如 fr1.squidproxy.com)。
如果您的客户端配置为明确使用 HAproxy,则它无需解密任何内容即可知道要使用哪个对等体。服务器名称和端口在 CONNECT 消息中以明文形式提供。否则,接收 CONNECT 的代理将不知道要连接到哪里。
任何 HTTP 代理都应该能够完美地将 CONNECT 消息中继到另一个 HTTP 代理。因此,您的 HAProxy 应该能够将 CONNECT 消息传递给相关 Squid,并让 Squid 解密(如果您当时仍想解密的话)。
如果您需要保护代理之间的连接,那就是完全不同的情况,与 HTTPS 或这三个代理之外的任何内容都无关。