Haproxy acl规则不起作用

时间:2017-03-13 11:39:57

标签: acl haproxy http2

我尝试使用HTTP2支持haproxy-1.7.3支持下一个acl规则:

acl rule0 hdr_beg(host) -i i0.
acl rule02 ssl_fc_alpn -i h2 and hdr_beg(host) -i i0.
use_backend i02 if rule02
use_backend i0 if rule0

acl rule1 hdr_beg(host) -i i1.
acl rule12 ssl_fc_alpn -i h2 and hdr_beg(host) -i i1.
use_backend i12 if rule12
use_backend i1 if rule1

backend i0
    server node1 192.168.40.51:5000 ssl verify none

backend i02
    mode tcp
    http-request add-header X-Forwarded-Proto https
    server node1 192.168.40.51:5001 check send-proxy

backend i1
    server node1 192.168.40.23:5000 ssl verify none

backend i12
    mode tcp
    http-request add-header X-Forwarded-Proto https
    server node1 192.168.40.23:5001 check send-proxy

我想要所有子域名i0的请求。转发到i0.myserver.com以及所有子域名i1的请求。通过HTTP2支持转发到i1.myserver.com。 但在我的情况下,所有请求总是转发到i0.myserver.com。这个acl规则有什么问题?

1 个答案:

答案 0 :(得分:2)

因此,tcp模式下的acl不适用于分析头。工作配置如下:

acl rule02 ssl_fc_alpn -i h2
acl rule0 ssl_fc_sni -i i0.mydomian.com

use_backend i02 if rule02 rule0
use_backend i0 if rule0

acl rule12 ssl_fc_alpn -i h2
acl rule1 ssl_fc_sni -i i1.mydomain.com

use_backend i12 if rule12 rule1
use_backend i1 if rule1

也许它会对某人有用。