多层代理获取用户真实IP

Nginx真实IP获取

获取用户真实IP

一、nginx+容器

这种场景只需要ningx配置 

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;

二、安全代理+nginx

网站部署了流量代理服务(例如Web应用防火墙、DDoS高防、CDN)后,源站服务器可以通过解析回源请求中的X-Forwarded-For记录,获取客户端的真实IP

以nginx为例,在location / {}中添加以下内容:

set_real_ip_from <ip_range1>;
set_real_ip_from <ip_range2>;
...
set_real_ip_from <ip_rangex>;
real_ip_header X-Forwarded-For;

其中,<ip_range1><ip_range2><ip_rangex>需要设置为代理服务器(即Web应用防火墙)的回源IP段。

log_format中添加x-forwarded-for字段,替换默认的remote-address字段:

log_format  main  '$http_x_forwarded_for - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" ';

这样子完美解决获取用户真实IP问题,但其实这里会导致nginx代理后的容器是获取不到真实IP,需要修改第一种场景的配置,设置转发头,如下:

proxy_set_header X-Real-IP $http_x_forwarded_for;
proxy_set_header X-Forwarded-For $http_x_forwarded_for;

遗留问题1:

通过VPN代理访问的话,就无法获取真实IP。

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dayfoxman

如果帮到了您不妨赏半杯奶茶解渴

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值