六月学习之Haproxy高级功能(自定义日志capture)
  eHipUjOuzYYH 2023年11月02日 36 0

6、Haproxy高级功能

6.6、自定义日志capture

capture {request|response} header捕获并记录指定请求或响应首部最近一次出现时的第一个值,捕获的首部值使用花括号{}括起来后添加进日志中
如果需要捕获多个首部值,他们将以指定的次序出现在日志文件中,并以竖线"|"作为分隔符,不存在的首部记录为空字符串,最常需要捕获的首部有如下几个:
1、虚拟主机环境中使用的Host字段
2、上传请求首部中的Content-length字段
3、快速区别真实用户和网络机器人的User-agent字段
4、代理环境中记录真实请求来源的X-Forward-Forward-F字段
capture语法:capture request header <name> len <length>
<name>:要捕获的名称,不区分大小写,注意:记录在日志中是首部对应的值,而非首部名称
<length>:指定记录首部值时所记录的精确长度,超出的部分将会被忽略

6.6.1、配置示例

在日志里体现每个请求,请求的主机头信息
cat /etc/haproxy/haproxy.cfg
frontend web
    bind *:80
    mode http
    capture request header Cache-Control        len 40   # 捕捉请求的域名
    capture request header Host        len 40   # 捕捉请求的域名
    capture request header User-Agent  len 16   # 捕捉请求的设备
    capture response header Server     len 40   # 捕捉响应的Server是什么
    
    use_backend webservers
backend webservers
    balance roundrobin
    server web1 172.16.1.7:80 check
    server web2 172.16.1.8:80 check

6.6.2、验证日志

#日志结果,关注{}中内容,第一个{}是request,第二个{}是response
haproxy: 10.0.0.100:48132 main webcluster/web2 {proxy.qingchen.com|curl/7.29.0}
haproxy: 10.0.0.100:48132 main webcluster/web2 {proxy.qingchen.com|curl/7.29.0} {nginx/1.18.0}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  KRsXEGSB49bk   2023年11月24日   43   0   0 Server客户端加载
  OGG2zAst6hx8   2023年11月26日   29   0   0 bootstrapServerkafka
  KRsXEGSB49bk   2023年11月24日   49   0   0 TCPHTTP首部
  L83A5jZvvg3Q   2023年11月22日   17   0   0 HTTP重定向字段
  L83A5jZvvg3Q   2023年11月22日   27   0   0 客户端HTTP字段
  it2nV7RK7uw1   2023年11月28日   79   0   0 DockerServerIP
  KRsXEGSB49bk   2023年11月22日   28   0   0 TCPHTTP首部