nginx反向代理获取用户真实ip

nginx做反向代理时,默认的配置后端获取到的ip都是来自于nginx,那么如何转发用户的真实IP到后端程序呢?

当前端使用nginx代理,后端使用php-fpm时,如果还是使用$_SERVER[‘REMOTE_ADDR’],那么php程序获取到的是nginx的ip地址,而不是用户的真实ip。

此时需要在nginx的配置文件中加入下面三个指令

	proxy_set_header Host $host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

修改后如下图所示

server {
    listen www.264.cn:80;
    server_name www.264.cn;
 
    location / {
        proxy_pass http://www.264.cn;
    }
 
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
}

这样后端php就可以使用 $_SERVER[‘HTTP_X_REAL_IP’] 获取到访客的ip。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值