在大多数情况下,网站访问请求并不是直接从用户的浏览器到达网站的源站服务器,而是可能经过CDN、高防IP、WAF等代理服务器。例如,网站可能采用用户 > CDN/高防IP/WAF > 源站服务器等部署架构。

通常,透明的代理服务器在将用户的访问请求转发到下一级服务器时,会在HTTP请求头中添加一条 X-Forwarded-For记录,用于记录用户的真实IP地址,格式为 X-Forwarded-For: 用户IP。如果请求经过多个代理服务器,则 X-Forwarded-For将记录用户真实IP和所经过的每个代理服务器IP。

因此,常见的Web应用服务器可以使用X-Forwarded-For的方式获取访问者的真实IP地址。

以下则是我总结的Nginx通过 X-Forwarded-For方式获取真实IP的办法:

在nginx.conf中的http项添加如下语句皆可

set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For; 

image.png

最后,不要忘记重载你的Nginx配置以及查看是否生效!

image.png

image.png

相关文章

本站由 🌦️雨云 提供计算服务

Last modification:March 26, 2023
如果您觉得本文对您有所启发或帮助,欢迎在文章页面进行打赏,您的支持将鼓励我继续分享有价值的内容。