Nginx 自定义 Log Format

2023 年 7 月 21 日 星期五(已编辑)
/ , , ,
19
AI 生成的摘要
这篇文章上次修改于 2023 年 7 月 21 日 星期五,可能部分内容已经不适用,如有疑问可询问作者。

Nginx 自定义 Log Format

前言

我们在使用 CDN 的时候,Nginx 中的日志会全是 CDN 的节点 IP,很不方便我们 Debug 之类的

1

1

为了解决这个问题,我们可以在 Nginx 的配置文件中自定义 Log Format 来实现在日志中显示访客的真实 IP

Get Start

首先你要确定自己的 CDN 在响应头中哪一项包含了用户的真 IP
具体请参考上一篇文章
然后我们打开 Nginx 的主配置文件,找到 http{} 这一块
找一个你喜欢的地方插入这一串内容

2

2
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

3

3

之后该站点的日志都会以你自定义的格式输出

4

4

The End

这样问题就解决了,如果你觉得我写的文章对你有帮助,
欢迎点个赞,适当打赏,评论区留言你的看法喵~

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...