não há cabeçalho de host nos cabeçalhos de resposta, sua acl nunca coincide. use algo assim:
http-request set-var(txn.foo) req.hdr(host)
http-response set-header bar 1 if { var(txn.foo) foo.bar }
Eu tenho a seguinte configuração, está na seção frontend
da conexão tls e haproxy termina as conexões 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
A diretiva use_backend
funciona condicionalmente conforme o esperado (há vários nomes de domínio diferentes exibidos e eles são escolhidos corretamente)
Mas os cabeçalhos não são adicionados / definidos para a resposta condicionalmente.
Espero que 3 cabeçalhos extras sejam adicionados: X-Foo
, X-Baz
e X-Bar
, mas apenas X-Baz
é adicionado:
< 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
Tenho certeza de que estou sentindo falta de algo trivial, mas ler documentação ou o Google não ajudou.
PS: é haproxy 1.8.8