Haproxy SNI 与 HTTP 主机 ACL 检查性能

Haproxy SNI vs HTTP Host ACL check performance

我有一个 HAproxy 1.5 设置,它在几个网络服务器前面卸载 SSL(这样,它们只处理 HTTP)

我的 SSL 证书是通配符,我们正在根据 FQDN 平衡到不同的后端。

我的前端配置如下所示:

...
frontend my-frontend
    bind            ip:443 ssl crt /var/etc/haproxy/wildcard_cert.pem  
    mode            http
    log             global
    option          httplog
    option          forwardfor

    use_backend     my-backend      if { ssl_fc_sni my.domain.org }
    use_backend     my-backend2     if { ssl_fc_sni my2.domain.org }

    acl             is-domain   hdr(host) -i my.domain.org
    acl             is-domain2  hdr(host) -i my2.domain.org
    use_backend     my-backend if is-domain
    use_backend     my-backend2 if is-domain2
...

特殊选项 ssl_fc_sni 可用于 SSL 卸载以访问 SNI 值(其中其他选项 req_ssl_sni 适用于 SSL pass-through)

http://cbonte.github.io/haproxy-dconv/configuration-1.5.html#ssl_fc_sni

我想知道 ssl_fc_sni 是否比 HTTP Header 提取 ACL 执行得更快? HAProxy 是否有机会提取 SNI 值并在读取 HTTP 内容之前使用它,提取主机:Header 并计算我的第二个 ACL?

还是性能一样?

谢谢,

我在 haproxy 邮件列表上问过同样的问题,我得到了答案:

  1. ssl_fc_sni执行速度比hdr(host)快,但会感觉不到。
  2. 使用 SNI 值作为后端选择器不是一个好主意。基本的hdr(host)绝对更标准、干净、安全。

邮件列表存档: http://marc.info/?l=haproxy&m=144490809910124&w=2