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了,

 #负载配置 

     upstream  web {
       #ip_hash;
       server 10.78.88.8:80 weight=6;
       server 10.78.88.9:81 weight=4;
     }
 
     server {
       listen 8080;
       server_name  localhost;
 
       location / {
         index index.html index.htm;
         proxy_pass http://web;
         proxy_redirect http://web http://$host:$server_port;
         proxy_set_header Host $http_host;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
         }
     }                                                                        

  

转载于:https://www.cnblogs.com/zhaojingyu/p/10691677.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值