文章内容

2021/10/1 15:28:08,作 者: 黄兵

Nginx 访问日志:记录真实用户 IP 而不是代理 IP

如果您在代理或缓存引擎(如 Varnish 或 Squid)后面运行 Nginx,您将看到您的访问日志中充满了提及您的代理或缓存引擎的 IP 而非真实用户 IP 地址的行。

要更改它,请在 http {} 部分的常规 nginx.conf 中添加以下行。

log_format main '$http_x_forwarded_for - $remote_user [$time_local] ' 
'"$request" $status $body_bytes_sent "$http_referer" ' 
'"$http_user_agent"' ;

那里的变化是标准的 $remote_addr 被替换为 $http_x_forwarded_for 你的代理/缓存将传递。

在您的配置中的某处,您将有一条类似于此的行:

access_log /var/www/site/logs/access.log main;

在最后添加 main 参数,告诉 Nginx 您正在使用您在上面创建的自定义日志格式。


文章来源:Nginx Access Log: log the real user’s IP instead of the proxy

分享到:

发表评论

评论列表