1
如何添加包含原始请求资源的绝对地址的自定义标头
我有以下设置: |-------|--- backend1:8080 example.com:80---|HAProxy|--- backend2:8080 |-------|--- backend3:8080 我想配置HAProxy以添加包含原始URL的自定义标头。例如,如果用户请求http://example.com/foo?bar=baz,即: GET /foo?bar=baz HTTP/1.1 Host: example.com:80 我希望HAProxy将此请求转换为后端,如下所示: GET /foo?bar=baz HTTP/1.1 Host: backend1:8080 x-custom-header: http://example.com/foo?bar=baz 该reqadd选项仅允许我添加具有静态值的标头。我能够使用reqrep以下命令从请求中获取路径部分: reqrep ^([^\ ]*)\ ([^\ ]*)\ (HTTP\/1\.[10]) \0\r\nx-custom-header:\ \2 但不幸的是,这仅捕获了原始url的路径部分,导致了以下标头: x-custom-header: /foo?bar=baz 所以我的问题是,在HAProxy 1.4中是否可以将Host标头和HTTP请求的第一行都组合到自定义标头中
11
haproxy