首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

nginx 使用cdn后,客户访问的IP地址不真实,怎样获取真实IP

在 Nginx 使用 CDN(内容分发网络)后,客户访问的 IP 地址不真实是因为 CDN 会将 IP 地址缓存到遍布全球的服务器上。这导致原始服务器的 IP 地址可能无法被准确地追踪。为了解决这个问题,请参考以下建议,以获取 CDN 上客户访问的真实 IP:

思路与建议

  1. 使用 ngx_http_header_t 模块:

在 Nginx 配置文件中,使用 http\_header_t 模块来添加自定义头。在处理请求之前,使用 set\_header 标签添加一个新的头,名为 X-Forwarded-For,其值为一个逗号分隔的 IP 地址列表,CDN 服务器就在该列表中。

代码语言:nginx
复制

http

配置 Nginx 反向代理

...

server

}

...

代码语言:txt
复制
  1. 使用变量

为了使代码更简洁,可以将变量的值添加到自定义头 X-Forwarded-For 中。例如,在 Nginx 配置文件中添加以下内容:

代码语言:nginx
复制

http

代码语言:txt
复制
 ...

}

server

代码语言:txt
复制
 ...

}

...

代码语言:txt
复制

注意:使用 CDN 时,请确保您选定的 CDN 服务商已支持通过自定义头 X-Forwarded-For 获取真实访问者 IP 地址。部分便宜的 CDN 服务可能默认不支持该功能。

以下是一个完整的示例:

文件名:nginx.conf

代码语言:nginx
复制
http 
  
  ...
  server 
    ...
  }
  
  ...
}
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券