Nginx 自定义 Log Format
前言
我们在使用 CDN 的时候,Nginx 中的日志会全是 CDN 的节点 IP,很不方便我们 Debug 之类的
为了解决这个问题,我们可以在 Nginx 的配置文件中自定义 Log Format 来实现在日志中显示访客的真实 IP
Get Start
首先你要确定自己的 CDN 在响应头中哪一项包含了用户的真 IP
具体请参考上一篇文章
然后我们打开 Nginx 的主配置文件,找到 http{} 这一块
找一个你喜欢的地方插入这一串内容
log_format main '$http_cf_connecting_ip / $remote_addr - [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';
在这一串代码中,main 表示自定义格式的名称,http_cf_connecting_ip 换成你自己的 CDN 带有用户真 IP 的 header,要带 http_,然后往后的 Log 会以以下格式输出
用户 IP / 节点 IP - [访问时间] "请求方式及目录" 响应代码 发送出去的数据包字节大小 来源 Url 用户 UA
然后找到站点配置的 http{} 这一块
找到你之前的 access_log
参数,在分号的前面加上 main
之后该站点的日志都会以你自定义的格式输出
The End
这样问题就解决了,如果你觉得我写的文章对你有帮助,
欢迎点个赞,适当打赏,评论区留言你的看法喵~