无论我怎么尝试,我都无法加载多个服务器或后端。这就像忽略了 sni 检查。我目前在 ubuntu 服务器上使用 haproxy 版本 2.6.2。我当前的代码是:
defaults
timeout client 30s
timeout server 30s
timeout connect 5s
frontend site_https
bind *:443
mode tcp
tcp-request inspect-delay 5s
tcp-request content accept if { req_ssl_hello_type 1 }
default_backend back_https
backend back_https
mode tcp
acl a1_acl req_ssl_sni -i a.domain.com
acl a1_acl req_ssl_sni -i b.domain.com
acl a1_acl req_ssl_sni -i c.domain.com
acl a2_acl req_ssl_sni -i d.domain.com
use-server s1 if a1_acl
use-server s2 if a2_acl
option ssl-hello-chk
server s1 192.168.0.1:443
server s2 192.168.0.2:443
无论我在域名中输入什么,都会导致服务器 s2 加载。它正在完成忽略服务器 s1。我已经阅读了许多教程和 haproxy 文档,但肯定有什么是我遗漏的。非常欢迎任何帮助/建议。
谢谢你,
答案1
事实证明我的 haproxy 设置一切正常。经过更多测试后,我发现如果我在尝试访问不同域名之间关闭浏览器,它就会正常工作。然后它让我想到它没有识别出更改,问题出在我的证书上。我使用的是通配符证书 *.domain.com。将其更改为两个证书,一个用于 a.domain.com,一个用于 b.domain.com 和 c.domain.com,然后是 d.domain.com,现在一切都运行正常。
希望这能够帮助其他人。