通过Nginx获取用户ip

X-Forwarded-For,X-Real-Ip
X-Forwarded-For的格式:
X-Forwarded-For: client, proxy1, proxy2

说明:
client指用户机的ip,或请求来源的最初的机器的ip
proxy1指一级代理
proxy2指二级代理

例如:
X-Forwarded-For:192.168.247.1, 192.168.247.131, 192.168.247.132
X-Real-Ip的格式:
X-Real-Ip:10.119.137.3

只有一个,指请求到nginx的机器的ip
在一般情况下,就是没有使用代理的用户的ip

异同:

X-Forwarded-For后面的ip可以有一个或多个

X-Real-Ip只有一个,并且一定和X-Forwarded-For的最后一个ip相同

对于 Web 应用来说,X-Forwarded-For 和 X-Real-IP 就是两个普通的请求头,自然就不做任何处理原样输出了。这说明,对于直连部署方式,除了从 TCP 连接中得到的 Remote Address 之外,请求头中携带的 IP 信息都不能信。

但是可以通过nginx将Remote Address设置为X-Real-Ip,并将其设置为X-Forwarded-For的最后一个,而这些内容将是完全可信的.

注意:X-Forwarded-For 最后一节是 Nginx 追加上去的,但之前部分都来自于 Nginx 收到的请求头,这部分用户输入内容完全不可信,不可信,不可信.

proxy_set_header   X-Forwarded-For  $x_forwarded_for;
proxy_set_header X-Real-Ip $remote_addr;

这样后端应用就可以从请求头中的X-Real-Ip获取需要的ip

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值