nginx 获取真实ip

 使用阿里云SLB,无法获取真实ip问题

官方给出的是如下用法,需要安装模块,大体上是没有错的,但是比较模糊,实际操作中可能会踩坑,所以参考学习即可,不必照搬。(那个http_realip_module是肯定必须的)

但是由于之前对nginx了解的不是那么的深入,所以对给出的一些参数不懂具体的意义,直接照搬,但是导致nginx无法启动成功。

后来通过查找其他资料,了解具体参数的功能后,就比较简单了。一定要理解set_real_ip_from和real_ip_recursive on的实际作用。

详解

set_real_ip_from 192.168.1.0/24; #真实服务器上一级代理的IP地址或者IP段,可以写多行。 

real_ip_header   X-Forwarded-For;  #从哪个header头检索出所要的IP地址。

real_ip_recursive on;      #递归的去除所配置中的可信IP。排除set_real_ip_from里面出现的IP。如果出现了未出现这些IP段的IP,那么这个IP将被认为是用户的IP。

 下图是我添加后的location,查看日志,已经获取到了真实的ip。

原文地址:https://www.cnblogs.com/yudai/p/10974444.html