Https
haproxy 不會有條件地添加標頭
我有以下配置,它位於
frontend
tls 連接部分下,haproxy 終止 https 連接:acl domain-acl-host hdr(host) -i domain.tld rspadd X-Foo:\ bar if domain-acl-host rspadd X-Baz:\ baz http-response set-header X-Bar bar if domain-acl-host use_backend backend_name if domain-acl-host
該
use_backend
指令按預期有條件地工作(提供了多個不同的域名,並且它們被正確選擇)但是標頭不會有條件地添加/設置到響應中。
我希望在此處添加 3 個額外的標頭:
X-Foo
、X-Baz
和X-Bar
,但僅X-Baz
添加:< HTTP/1.1 302 Found < Server: nginx < Content-Type: text/html; charset=UTF-8 < Transfer-Encoding: chunked < Cache-Control: max-age=0, must-revalidate, private < Date: Sun, 14 Oct 2018 20:25:59 GMT < Location: https://domain.tld/somewhere/else < X-Baz: baz
我確定我遺漏了一些微不足道的東西,但閱讀文件或Google並沒有幫助。
PS:這是
haproxy 1.8.8
響應標頭中沒有主機標頭,您的 acl 永遠不會匹配。使用這樣的東西:
http-request set-var(txn.foo) req.hdr(host) http-response set-header bar 1 if { var(txn.foo) foo.bar }