自定义标头不能loginHAProxy

我想在HAProxy中设置和logging自定义标题,以获取数据,以便我可以设置我们的DDoS / Anti Abuseconfiguration。

我遇到的麻烦是我可以设置标题,并且可以捕获不是由HAProxy设置的标题(例如:Accept-Language),但是我不能捕获/设置我设置的标题。 他们只是在日志中显示空白。 下面的configuration我尽可能简化了一切,它仍然不会logging自定义标题。

我在一个单一的前端所有这一切。

frontend WEBSERVER bind 111.222.333.444:80 option forwardfor option httplog ....... http-request add-header X-IP %ci http-request add-header X-Custom-Header pizza capture request header X-IP len 64 capture request header X-Custom-Header len 5 capture request header Accept-Language len 64 default_backend WEB-FARM 

我的日志最终看起来像这样:

 10.0.0.1:62291 [20/Oct/2015:12:52:26.112] WEBSERVER WEB_FARM/WEB-1 5/0/49/50/315 200 16875 - - ---- 1/1/0/0/0 0/0 {||en-US,en;q=0.8} "GET /media/title.png HTTP/1.1" 

你不会说你正在使用的是什么版本的HAProxy,但是在1.6.x中, http-request关键字现在有一个capture参数,应该为你做。

您可以像capture request header一样使用它:

 frontend WEBSERVER bind 111.222.333.444:80 option forwardfor option httplog ....... http-request add-header X-IP %ci http-request add-header X-Custom-Header pizza http-request capture hdr(X-IP) len 64 http-request capture hdr(X-Custom-Header) len 5 capture request header Accept-Language len 64 default_backend WEB-FARM