Tente isto:
http-response set-header Cache-Control no-cache,\ max-age=600 if { capture.req.uri -m beg /api/ }
capture.req.uri persiste até que a resposta seja processada, ao contrário de path , o que não ocorre.
Algumas notas:
Este exemplo usa uma ACL anônima. Você também pode fazer isso com uma ACL nomeada, mas isso leva 2 linhas.
Não há motivo para saber por que você deve citar o valor max-age.
Você provavelmente não deseja add-header , você deseja set-header , o que garante que, se um já estiver presente, ele será removido.
acl path_acl %[var(txn.path)] -m ^/api/(.*)$ provavelmente está escrito corretamente como acl path_acl var(txn.path) -m ^/api/(.*)$ . O HAProxy é um pouco complicado quando espera %[ ] e quando não. Tenho certeza que há um padrão, mas não estou claro o que é isso.