前言#
我们在使用 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#
这样问题就解决了,如果你觉得我写的文章对你有帮助,
欢迎点个赞,适当打赏,评论区留言你的看法喵~
此文由 Mix Space 同步更新至 xLog
原始链接为 https://blog.nekorua.com/posts/maintain/16.html