我们有很多设备无法使用 SNI,我们希望能够代理很多 HTTP/HTTPS 服务器。我在想,我们可以为每个要连接的 URL 设置一个 HAProxy,然后将其负载平衡到通用 HAProxy 服务器。这可行吗?我的意思是,只需使用前端服务器对每个 URL 进行 HTTP/HTTPS 初始连接,然后将请求传递给通用 haproxy 服务器?
答案1
是的,尽管 haproxy 对此来说有点小题大做。您甚至可以将stunnel
具有适当证书的 IP 地址绑定到每个 IP 地址,并使这些 IP 地址连接到您的中央 HAproxy。
甚至不需要有多个 HAproxy。
listen ssl-domain1
bind public-ip-1:443
# <- ssl config here ->
server haproxy localhost:6000
listen ssl-domain2
bind public-ip-2:443
# <- ssl config here ->
server haproxy localhost:6000
... # more ssl listeners
frontend http-proxy
bind localhost:6000
acl application1 hdr_beg(host) -i domain1
acl application1 hdr_beg(host) -i domain1.2
acl application2 hdr_beg(host) -i domain2
# ...
use_backend application1 if application1
# ...
虽然不是特别漂亮,但我相信可以完成工作。