我只有一个公网 IP 地址,和 中的三台 Web 服务器。我想像这样LAN
将来自 的流量重定向到 Web 服务器,必须支持流量重定向:WAN
SSL/TLS
https://www.example.com (A Record)===> 1.1.1.1(Public IP) ===> 192.168.1.1(Web 1)
https://www.example.net (A Record)===> 1.1.1.1(Public IP) ===> 192.168.1.2(Web 2)
能HAProxy完成这项工作?
答案1
不需要使用haproxy
,它不是设计为 http/https 平衡器。在我们的环境中,我们使用nginx
已配置的上游。您也可以终止 sslnginx
并在后端使用简单的 http。
答案2
只要您拥有站点的证书/密钥,您就可以将多个 FQDN 路由到不同的后端。 HA 代理需要能够解密流量并读取主机头,除非您想尝试使用 TCP 转发,但您失去了持久性的能力。 您的证书文件应为 PEM 格式。
前端 https--in 绑定 1.1.1.1:443 ssl crt /etc/haproxy/certs 模式 http 选项 httplog use_backend bk_1 if { hdr_dom(host) -i www.example.com } { dst_port 443 } use_backend bk_2 if { hdr_dom(host) -i apps.example.com } { dst_port 443 } use_backend bk_3 if { hdr_dom(host) -i www.otherdomain.com } { dst_port 443 }
答案3
如果您只有 1 个外部 IP,则需要将 SAN 证书绑定到包含您想要定向的所有 URL 的外部端。查看使用 ACL 来引导流量。如https://seanmcgary.com/posts/haproxy---route-by-domain-name(不是我的博客)。HAProxy 是解决这一问题的完美方案。