nginx获取上游真实IP(ngx_http_realip_module)

Posted 随心朝阳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx获取上游真实IP(ngx_http_realip_module)相关的知识,希望对你有一定的参考价值。

realip模块的作用是:当本机的nginx处于一个反向代理的后端时获取到真实的用户IP,如果没有realip模块,nginx的access_log里记录的IP会是反向代理服务器的IP,php中$_SERVER[‘REMOTE_ADDR’]的值也是反向代理的IP。

而安装了realip模块,并且配置正确,就可以让nginx日志和php的REMOTE_ADDR都变成真实的用户IP。

如果不做任何配置,后端web服务器nginx日志里记录的IP将会是10.10.10.10,这个时候我们增加如下nginx

 
set_real_ip_from 10.10.10.10; real_ip_header X-Forwarded-For;
 
 
 
set_real_ip_from指令是告诉nginx,10.10.10.10是我们的反代服务器
 
(信任服务器,记住这个名词,下面会提到),不是真实的用户IP,
 
real_ip_header则是告诉nginx真正的用户IP是存在X-Forwarded-For请求头中
 
(对X-Forwarded-For不了解的同学请自行百度)。
 
 
 
重新加载nginx配置之后,就可以看到nginx日志里记录的IP就是123.123.123.123了,
 

  

以上是关于nginx获取上游真实IP(ngx_http_realip_module)的主要内容,如果未能解决你的问题,请参考以下文章

nginx获取请求真实IP

nginx如何获取自己的ip

nginx的tcp透明代理设置

图解 nginx 如何获取真实的来源 IP

获取用户真实IP:(模拟:客户端--F5--nginx--tomcat 后端获取用户真实IP)

前端Nginx,后端Apache获取用户真实IP地址