我正在寻找一个HAProxy匹配SNI通配符的例子,我的搜索提出了类似的标题但无关的证书问题。
具体来说,我需要使用acme / letsencyrpt为dvsni路由nonce域。
frontend foo_ft_https
mode tcp
option tcplog
bind 0.0.0.0:443
acl foo_app_letsencrypt req.ssl_sni -i *.acme.invalid
use_backend foo_bk_letsencrypt if foo_app_letsencrypt
default_backend foo_bk_default
backend foo_bk_letsencrypt
mode tcp
option tcplog
server foo_srv_letsencrypt 127.0.0.1:3443
backend foo_bk_default
mode tcp
option tcplog
server foo_srv_default 127.0.0.1:8443
注意:所有任意名称都以'foo_'为前缀,以便读者可以轻松地将它们与关键字,指令等区分开来。
答案 0 :(得分:7)
更改
acl foo_app_letsencrypt req.ssl_sni -i *.acme.invalid
到
acl foo_app_letsencrypt req.ssl_sni -m end .acme.invalid
官方文档中没有提到它 明确地https://cbonte.github.io/haproxy-dconv/configuration-1.5.html,但我能够找到其他资源来引导我得到正确的结果:
请注意,如果您要尝试第一个示例,它将“正常”,但“”将被解释为文字“”,而不是通配符。
答案 1 :(得分:2)
即使这是一个非常老的问题,我也想分享这个解决方案,因为这仍然是第一个Google的搜索结果:
CoolAJ86提供的解决方案不适用于我(它可能适用于旧版本的HAProxy)。您可以这样使用ssl_fc_sni_end而不是ssl_fc_sni:
optimizer = tf.train.GradientDescentOptimizer(learning_rate)
gvs = optimizer.compute_gradients(loss_op)
capped_gvs = [(grad, tf.clip_by_norm(var,1, axes = None)) for grad, var in gvs]
train_op = optimizer.apply_gradients(capped_gvs)
它将完成工作!