欢迎光临lce.cc,我是一名技术出身的互联网产品经理和创业者,对产品、运营、设计、建筑、互联网、路由器、区块链等领域都有较深入的研究,对历史、哲学、心理学、政治也比较感兴趣,欢迎同样有兴趣的一起交流。我的邮箱:a#lce.cc

nginx反向代理,使后端nginx日志可以打印真实访客IP

默认 lce 83℃ 0评论

有个网站,采用了前后端分离的架构。也就是域名指向前端服务器,前端服务器收到请求后再转发给后端服务器。

前端服务器只安装了nginx,通过proxy_pass把用户的访问请求转给后端服务器处理。后端服务器安装的是lnmp服务,即nginx+php-fpm+mysql。收到前端服务器的请求后转给PHP处理,再通过前端服务器返回给用户。

由于后端服务器是和前端服务器直接交互,所以nginx的输出日志里面,IP地址是前端服务器的IP地址。这样就不容易知道真实访客的IP地址。

通过设置,可以使后端nginx显示真实访客的IP地址,而不是前端服务器的IP地址。

首先,要确保后端nginx集成了real_ip模块。linux上通过命令nginx -V,即可看到:

如上图,如果看到有–with-http_realip_module,就代表nginx已经集成了real_ip模块。

否则,需要重新编译nginx。

编译也很简单,直接把nginx -V查看到的nginx编译选项复制,在后面加上
–with-http_realip_module 这个选项,再到nginx的源码目录执行./configure就可以了。

比如:

./configure –user=www –group=www 此处省略若干字 –with-http_realip_module

如果没出现什么错误,就可以再make;make install就可以了。

然后,在vhost的设置中,增加

set_real_ip_from 127.0.0.1;
set_real_ip_from 前端服务器的IP地址;
real_ip_header X-Real-IP;

再重启nginx即可。

注:仅仅nginx -s reload是不行的。必须/etc/init.d/nginx stop再start才好。

转载请注明:长风破浪会有时,直挂云帆济沧海 » nginx反向代理,使后端nginx日志可以打印真实访客IP

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址