如何根据请求URI在HAproxy 1.6中添加响应头?

我使用HAproxy 1.6作为tomcat服务器之前的负载平衡器。

我需要添加基于请求URI的响应头。

例如,当请求uri是/api时,我想添加响应头部Cache-Control public,max-age="600" ,而当请求uri是别的东西时,则不会。

我如何使用请求path到一个acl来设置响应头?

尝试这个:

 http-response set-header Cache-Control no-cache,\ max-age=600 if { capture.req.uri -m beg /api/ } 

capture.req.uri一直存在,直到响应被处理,而不像path那样。

一些注意事项:

本示例使用匿名ACL。 你也可以用命名的ACL来完成,但需要2行。

我没有理由知道你为什么要引用最大年龄值。

你可能不想add-header ,你想要set-header ,这确保如果已经存在,它将被删除。

acl path_acl %[var(txn.path)] -m ^/api/(.*)$可能正确写成acl path_acl var(txn.path) -m ^/api/(.*)$ 。 当HAProxy期待%[ ]时,HAProxy有点挑剔。 我确定有一个模式,但我不清楚是什么。