IP查询正在获取CDN的X-Forwarded-For

大家好,Discourse 社区!

我是否可以假设 IP 查找功能会从 X-Forwarded-For 头部获取最后一个 IP?Cloudfront 似乎将其 IP 附加在了末尾。

我们该如何修改 nginx 以移除 X-Forwarded-For 头部中的最后一个 IP?我们希望能获取客户端 IP 以防止垃圾邮件发送者。

能否请任何人提供帮助或指导?

祝好

只是想问问,还有其他人有类似的解决方法吗?

嗨,你检查过这个吗?

1 个赞

请查看 Run other websites on the same machine as Discourse

我在启用 Cloudflare 代理时遇到了这个问题。

我通过更改 Nginx 配置解决了这个问题。您需要找到所有的代理 IP 地址,并在 http 部分为每个 IP 地址添加:

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;
...

然后,您可以设置 Cloudflare 传递的标头中的真实 IP 地址:

real_ip_header CF-Connecting-IP;

由于代理 IP 地址可能会更改,我需要自动化拉取和更新这些 IP 地址。

然后使用以下命令重新加载/重启 nginx:

sv nginx reloadsv nginx restart

唉。真希望我早点看到这篇帖子!我今天花了整整一个小时重新创建了一个已经存在的东西:X-Forwarded-For 代理标签未被 Discourse 识别?

2 个赞

我建议您切换到内置解决方案,因为它会在您重建站点时自动从 Cloudflare 更新 IP 列表!

3 个赞

与依赖重新构建相比,最好设置一个 cron 作业来定期检查。

它听起来变化不频繁:https://community.cloudflare.com/t/how-often-do-cloudflare-ips-change/9802/7

2年实际上比我预想的要频繁。

不过,检查非常简单,每天检查一次也没有问题。希望他们在新的 IP 地址范围生效前几天更新列表。