自定义标头未记录在 HAProxy 中

自定义标头未记录在 HAProxy 中

我正在尝试在 HAProxy 中设置和记录自定义标头以获取数据,以便我可以设置我们的 DDoS/Anti Abuse 配置。

我遇到的问题是,我可以设置标头,并且可以捕获 HAProxy 未设置的标头(例如:Accept-Language),但我无法捕获/记录我设置的标头。它们只是在日志中显示为空白。下面的配置我尽可能简化了所有内容,但它仍然不会记录自定义标头。

我把所有这些都放在一个前端。

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"

答案1

你没有说明你使用的是哪个版本的 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-FARM

相关内容