为了获取数据,我尝试在HAProxy中设置和记录自定义头,这样我就可以设置我们的DDoS/反滥用信任。
我遇到的问题是,我可以设置头,也可以捕获HAProxy没有设置的标头(例如:接受-语言),但是我不能捕获/记录我设置的标头。他们只是在日志中出现空白。下面的配置,我已经尽可能地简化了一切,它仍然不会记录自定义标题。
我把所有这些都放在一个前端。
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"发布于 2015-10-21 12:17:42
您并没有说您使用的是哪个版本的HAProxy,但是在1.6.x中,http-请求关键字现在有一个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-FARMhttps://serverfault.com/questions/730415
复制相似问题