首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >支持CDN和real_ip的Nginx IPV6

支持CDN和real_ip的Nginx IPV6
EN

Stack Overflow用户
提问于 2019-09-29 13:39:07
回答 1查看 596关注 0票数 1

我正在为我的网站使用CDN,想要获得客户的真实ip。我的配置如下:

代码语言:javascript
运行
复制
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 104.16.0.0/12;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 131.0.72.0/22;
real_ip_header    X-Forwarded-For;

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

在过去,配置工作得很好,但由于我的CDN支持IPV6,所以我遇到了以下问题。

我绑定了使用IPV6访问我的网站,然后对于我的请求:

代码语言:javascript
运行
复制
remote_addr: 117.34.13.18
http_x_forwarded_for: 2409:890c:530:a849:84b5:3a3b:d0ce:4e5b
realip_remote_addr: 117.34.13.18
proxy_add_x_forwarded_for: 2409:890c:530:a849:84b5:3a3b:d0ce:4e5b, 117.34.13.18

似乎在nginx获取IPV6地址时,使用了CDN IP作为remote_addr。

如果用户在IPV6上,我就无法获取用户的RealIp。

我查看了nginx文档,上面写着realip支持IPV6。有没有办法获取客户端的IPV6 realIP?

我知道我可以使用$http_x_forwarded_for作为客户端的IP,但是如果客户端直接连接到我的服务器,那么就不会有$http_x_forwarded_for。

EN

回答 1

Stack Overflow用户

发布于 2021-02-12 05:41:50

我今天也遇到了同样的事情(在你提问16个月后)。每当IPV6用户通过Cloudflare访问我时,它只会记录Cloudflare的IP地址。我运行的nginx版本非常旧,所以我尝试了一个新的运行nginx 1.14.2的Debian服务器,这个问题已经解决了!因此,如果其他人有同样的问题,请尝试升级nginx。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58152575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档