A execução de haproxy em primeiro plano ( haproxy -d -V -f haproxy.cfg
) com seu exemplo exibiu o seguinte aviso:
acl 'some_condition' will never match because it only involves keywords that are incompatible with 'frontend http-response header rule'
Brincando com minha configuração, descobri que esse aviso é exibido ao usar esta ACL:
acl some_condition req.hdr(Content-Type) -i application/json
Mas não quando usar esta ACL:
acl some_condition res.hdr(Content-Type) -i application/json
A diferença é res
vs. req
, portanto, verificar cabeçalhos de resposta em vez de cabeçalhos de solicitação. Isso me leva a acreditar que uma regra http-response header
em frontend
é incapaz de inspecionar request
cabeçalhos.
Eu não sei se esta é a funcionalidade pretendida pelo HAProxy, mas certamente não foi claramente documentada.