可以看出,这个问题可以在传输层上解决。假设您有一个example.com的DNS A记录,指向192.168.0.1。当您在浏览器中输入https://example.com时,您的PC与IP 192.168.0.1的服务器建立了TCP连接,其中某些进程在端口443上进行侦听。如果同时服务器(不尝试这样做)了解通过此TCP会话发送的数据的详细信息(例如开始SSL协商),建立到192.168.0.2的TCP连接(另一台服务器使用DNS A example2.com指向它)。在第一台服务器上安装的HA代理Linux实用程序可以通过像这样的配置:
defaults
log global
mode tcp
retries 2
option redispatch
option tcplog
option tcpka
option clitcpka
option srvtcpka
timeout connect 5s
timeout client 24h #timeout client->haproxy(frontend)
timeout server 60m
listen front443 192.168.0.1:443
server back443 192.168.0.2:443
但是,这将导致SSL证书错误,除非您的example2.com Web服务器将显示带有CN = example2.com和SAN = example.com的SSL证书。
或者,当来自用户的example.com和example2.com解析为192.168.0.1时,您可能会设置DNS slpit范围。