要在Nginx日志中记录客户端的真实来源IP而不是Cloudflare的IP,您可以使用X-Forwarded-For
头部。这是一个包含了代理服务器传递请求的所有IP地址的头部,最后一个IP通常是客户端的真实IP。请注意,由于头部可以被伪造,这种方法并不是绝对可靠的。
以下是一些步骤来配置Nginx以记录客户端的真实IP:
打开Nginx的配置文件,通常位于 /etc/nginx/nginx.conf
或 /etc/nginx/conf.d/default.conf
。
在您的 http
块内部添加以下配置以设置 real_ip_header
和 set_real_ip_from
指令:
http {
# ...其他配置...
real_ip_header X-Forwarded-For;
set_real_ip_from 0.0.0.0/0;
}
这将告诉Nginx使用 X-Forwarded-For
头部作为客户端的真实IP,并允许所有IP范围。
在您的 server
配置块内部,添加以下配置以记录客户端的真实IP:
server {
# ...其他配置...
access_log /var/log/nginx/access.log;
# ...其他配置...
}
这将将访问日志写入 /var/log/nginx/access.log
,其中包括客户端的真实IP。
保存配置文件并退出。
测试配置文件是否正确,可以使用以下命令:nginx -t
如果测试通过,重新加载Nginx以使配置更改生效:systemctl reload nginx
完成这些步骤后,Nginx将使用X-Forwarded-For
头部中的客户端真实IP来记录访问日志,而不是Cloudflare的IP。请注意,这依赖于代理服务器正确设置X-Forwarded-For
头部,并且需要进行适当的安全考虑,以防止伪造IP地址。