![在 HAProxy 中使用正则表达式创建 ACL](https://linux22.com/image/695209/%E5%9C%A8%20HAProxy%20%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E5%88%9B%E5%BB%BA%20ACL.png)
我想有条件地向与域及其子域匹配的请求添加标头。因此,我想匹配来自以下地址的请求:
http://example.com
https://example.com
http://foo.example.com
https://foo.example.com
但不是:
http://example.com.otherdomain.com
我的 haproxy 配置中有这些行。
frontend http
capture request header origin len 128
acl is_my_domain capture.req.hdr(0) /https?:\/\/(.*\.)?example.com/
http-response add-header X-Your-Domain-IS %[capture.req.hdr(0)] if is_my_domain
我可以让捕获的数据在标头中回显,但条件不起作用。我该如何测试原始标头?
答案1
看起来您宁愿使用以下 acl,它看起来更具可读性:
acl is_my_domain hdr_end(host) -i example.com
http-response add-header X-Your-Domain-IS %[host] if is_my_domain