You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HAProxy如何使用SNI分流流量?公网IP路由异常修复方法

问题根因

你配置里用ssl_fc_sni匹配公网IP的规则失效,核心原因是绝大多数HTTPS客户端直接访问IP地址时,不会在TLS握手的SNI扩展字段中填入IP地址,对应ACL匹配不到任何值,流量就会被路由到默认的web后端。

修复方法

根据你的证书部署情况选一种方案调整即可:

  • 方案1:多域名证书共用443端口场景
    不要仅依赖SNI匹配IP流量,补充SSL层的目标IP匹配规则,修改后的配置如下:

    acl is_a01 ssl_fc_sni -i test.xyz
    acl is_a02 ssl_fc_sni -i 12.13.14.16
    acl is_a02 ssl_fc_dst_ip -i 12.13.14.16
    
    use_backend n1 if is_a01
    use_backend n2 if is_a02
    default_backend web
    

    这个配置同时覆盖两种情况:少数客户端会在SNI里带IP、大多数客户端不带SNI直接访问目标IP的场景,兼容性最好。

  • 方案2:公网IP使用独立SSL证书场景
    直接给该公网IP配置独立的监听项,绑定对应IP证书后直接指定后端,完全不需要依赖SNI匹配:

    # 原有域名HTTPS监听
    bind :443 ssl crt /path/to/your/domain_cert.pem
    acl is_a01 ssl_fc_sni -i test.xyz
    use_backend n1 if is_a01
    
    # 公网IP独立HTTPS监听,绑定专属IP证书
    bind 12.13.14.16:443 ssl crt /path/to/your/ip_cert.pem
    use_backend n2
    
    default_backend web
    
校验生效

配置修改完成后,先执行haproxy -c -f 你的haproxy配置文件路径检查语法是否正确,确认无报错后重载HAProxy服务即可。

注意:你绑定到公网IP的SSL证书必须在SAN(主体备用名称)字段中包含该公网IP,否则路由生效后客户端仍会提示证书不可信。

内容的提问来源于stack exchange,提问作者terry hu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 05:30:53