使用魔门云后如何取得真实用户IP
魔门云CacheMoment的产品作为反向代理,作用在用户与源服务器之间,所有的请求都会变成有魔门云的节点发起,这样对于一些网站或者应用就可能存在以下问题:
如果你的网站或者APP会根据用户的来源IP做一些逻辑处理,那么现在取得的IP就变成了魔门云的回源节点IP。
同样,log里的记录的来源IP也会变成魔门云的回源节点IP
获取用户的真实IP
魔门云的回源请求中携带了两个有关客户端IP的Header,分别是:
- X-Real-IP 如果用户直接访问魔门云,我们会用这个Header来记录用户和我们建立连接的真实IP
- X-Forwarded-For 如果用户通过代理(本地缓存,运营商缓存)访问魔门云,我们会通过这个Header来传递代理发来的用户IP
对于nginx用户,可以使用NGINX的这个module: ngx_http_realip_module,以保证能拿到真是用户的IP地址。
增加以下配置:
set_real_ip_from 118.89.239.0/24; # 请将IP替换成魔门云节点IP
real_ip_header X-Real-IP;
关于魔门云节点IP信息请参考魔门云的节点IP列表
在log中记录用户的真实IP
可以在设置log_format时使用
$http_x_forwarded_for