Haproxy同时在443端口上使用tcp和http协议
本文介绍了在HAProxy中复用443端口同时监听TCP和HTTP协议时遇到的SSL握手问题,具体表现为需要多次握手失败才能正确进行SNI转发。作者首先回顾了之前通过HAProxy配置实现使用SNI进行TCP与HTTP协议分流的方法,但由于协议优先级的关系,导致识别延迟和握手失败现象频发。为解决这一问题,作者重新配置HAProxy,使所有443端口的流量先以TCP模式进入,通过SNI信息进行域名分流,再将流量转发到不同的后端服务器。配置中包括全局设置、默认配置、HTTP到HTTPS的重定向规则、HTTP入站的详细配置以及TCP入站的SNI分流规则。通过这种方式,HAProxy能够稳定地处理不同协议和域名的流量,避免了之前的握手失败问题,实现了高效的SNI分流与协议转换。