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

HAProxy SSL passthrough及ACL规则不生效配置问题求助

HAProxy SSL passthrough配置故障排查

核心故障原因

  • 模式与匹配规则不匹配:你当前的配置需求是SSL passthrough(前端不处理SSL解密),但defaults全局配置为mode http,且ACL用了HTTP层的hdr_dom(host)匹配Host头。加密的HTTPS流量在未解密的情况下HAProxy无法读取HTTP层的Host字段,导致443端口的域名匹配规则完全失效。
  • 前后端协议配置冲突:backend abc.com的server配置加了ssl参数,会让HAProxy主动发起HTTPS握手和后端通信,不符合SSL passthrough直接透传原始流量的要求。
  • 端口逻辑混布:80明文HTTP端口和443加密HTTPS端口放在同一个frontend中,两种流量的协议层处理逻辑不同,容易出现规则匹配混乱。

修正方案(保留SSL passthrough能力)

切换443端口的处理逻辑为TCP模式,通过SNI(TLS扩展字段,明文传输域名信息)做域名匹配,不需要前端处理SSL解密,符合你的需求。80端口单独保留HTTP模式做Host头匹配。
修正后的配置参考:

# 原有global、defaults配置保留,替换frontend和backend部分即可
# 处理443端口HTTPS流量,SSL passthrough模式
frontend fe_https
    bind AAA.BBB.CCC.DDD:443
    mode tcp
    option tcplog
    tcp-request inspect-delay 5s
    tcp-request content accept if { req_ssl_hello_type 1 }
    # 基于SNI字段匹配域名,不需要解密流量
    acl ValidDomain req_ssl_sni -i abc.com
    use_backend be_abc_https if ValidDomain
    default_backend be_fallback_https

# 处理80端口HTTP流量
frontend fe_http
    bind AAA.BBB.CCC.DDD:80
    mode http
    acl ValidDomain hdr_dom(host) -i abc.com
    use_backend be_abc_http if ValidDomain
    default_backend be_fallback_http

# HTTPS业务后端,直接透传流量无需加ssl参数
backend be_abc_https
    mode tcp
    balance static-rr
    server default ZZZ.YYY.XXX.WWW:443 check

# HTTP业务后端,按需调整端口
backend be_abc_http
    mode http
    balance static-rr
    server default ZZZ.YYY.XXX.WWW:80 check

# HTTPS fallback后端,端口需对应你 fallback服务的HTTPS监听端口
backend be_fallback_https
    mode tcp
    balance static-rr
    server fallback 127.0.0.1:8443 check

# HTTP fallback后端,保留原有配置
backend be_fallback_http
    mode http
    balance static-rr
    server fallback 127.0.0.1:8080 check

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:48:01