如何将HTTP里面的Header信息记录到访问日志里

描述

不得不承认Nginx用的非常广泛,然而Nginx的访问日志在分析问题时也有很大用途,那么Nginx日志要想增加一些自定义信息就尤为重要了。比如本篇文章就教你如何将HTTP里面的Header信息记录到访问日志里。

在nginx的http段里面对log_format做如下的设置:

 

http { …… log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" "$http_myheader"'; access_log logs/access.log main; …… }

 

在日志格式的最后面加入了$http_myheader,那么,Nginx会记录myheader这个头部,保存到access log里面。

重启Nginx,然后curl测试:

 

curl -H "myheader: testlog" localhost/index.html curl localhost/index.html

 

然后查看两次请求的日志记录

 

tail -2 logs/access.log127.0.0.1 - - [xxx] "GET /index.html HTTP/1.1" 200 88 "-" "curl/7.29.0" "-" "testlog"127.0.0.1 - - [xxx] "GET /index.html HTTP/1.1" 200 88 "-" "-" "curl/7.29.0" "-" "-

 

请求头部中没有myheader字段的时候,日志字段里记为"-",header有myheader字段的时候,最后一段是myheader的值。

总结:这里的myhader为自定义的变量,只要在你的header里包含了此字段,并且带上它的值,那么在日志里就可以显示此信息了。

原文标题:Nginx如何将用户请求的Header信息记录到日志里

文章出处:【微信公众号:阿铭linux】欢迎添加关注!文章转载请注明出处。  

      审核编辑:彭静

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分