专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

nginx中获取客户端真实的访问IP

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 1:13:00       共计:3672 浏览

1,必需要先搞清楚的基本概念


1.1   什么是remote_addr

      remote_addr 是服务端根据请求TCP包的ip指定的。假设从client到server中间没有任何代理,那么web服务器(Nginx,Apache等)就会把client的IP设为IPremote_addr;如果存在代理转发HTTP请求,web服务器会把最后一次代理服务器的IP设置为remote_addr。

      没有使用代理服务器的情况:

     REMOTE_ADDR = 您的 IP

        HTTP_VIA = 没数值或不显示

        HTTP_X_FORWARDED_FOR = 没数值或不显示


1.2   什么是x_forwarded_for

      当使用代理时,web服务器无法通过TCP数据包来源获得发起请求的client的真实IP,因此代理服务器通常会在http请求头增加一个叫做x_forwarded_for的字段,用来记录请求发起者的真实IP。


使用透明代理服务器的情况:Transparent Proxies

     REMOTE_ADDR = 最后一个代理服务器 IP

       HTTP_VIA = 代理服务器 IP

        HTTP_X_FORWARDED_FOR = 您的真实 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.1, 203.98.182.2, 203.129.72.3。

    这类代理服务器还是将您的信息转发给您的访问对象,无法达到隐藏真实身份的目的。


2,怎样配置nginx,使之获取到真实的客户端IP


调用这个配置:再server的里面调用这个配置。


版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:在Nginx中允许域名访问而禁止通过IP访问 | ·下一条:Nginx中如何设置只允许指定的IP地址访问

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有