不得不承认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】欢迎添加关注!文章转载请注明出处。
全部0条评论
快来发表一下你的评论吧 !