解决 Nginx 日志不显示真实 IP

0、问题描述

使用了 CDN 后,Nginx 日志清一色都是 CDN IP。

虽然宝塔防火墙可以拦截恶意请求,拉黑真实 IP,但是有一些扫描器没有被识别,在日志中可以看到,如果无法找到真实 IP,也就无法拉黑这些扫描器的 IP 了。

1、解决方法

解决方案是,自定义日志格式。

编辑 Nginx 配置文件,如果使用宝塔一般是:

/www/server/nginx/conf/nginx.conf

或直接在软件-Nginx-配置文件修改。

http字段的末尾(server字段前)加上以下内容:

Nginx
1
2
3
4
5
6
7
8
9
10
11
http {
    ...
    # 不要修改原有的内容
    log_format reallog '$http_x_forwarded_for - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" ';
    # 加上这一段即可
}

server {
    ...
    # 不要修改原有的内容
}

然后在开启 CDN 的网站的 Nginx 配置文件中,修改:

此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。

替换为正确路径,保存即可。

解决 Nginx 日志不显示真实 IP

https://blog.tsinbei.com/archives/1268/

文章作者
Hsukqi Lee
发布于

2023-06-04

修改于

2023-06-22

许可协议

CC BY-NC-ND 4.0

评论

昵称
邮箱
网址
暂无