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 邮件列表上问过同样的问题,我得到了答案:
ssl_fc_sni
执行速度比hdr(host)
快,但会感觉不到。
- 使用 SNI 值作为后端选择器不是一个好主意。基本的
hdr(host)
绝对更标准、干净、安全。
我有一个 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 邮件列表上问过同样的问题,我得到了答案:
ssl_fc_sni
执行速度比hdr(host)
快,但会感觉不到。- 使用 SNI 值作为后端选择器不是一个好主意。基本的
hdr(host)
绝对更标准、干净、安全。