我对用于速率限制的标头有一个疑问。背景是我们有一个 nginx.conf 文件,其中包含 set_real_ip,并且我们正在使用一个提供商,该提供商通过 Some-Client-IP 标头向我们发送带有客户端实际 IP 的流量。
sendfile on;
set_real_ip_from ...;
set_real_ip_from ...;
set_real_ip_from ...;
set_real_ip_from ...;
real_ip_header Some-Client-IP;
real_ip_recursive on;
Some-Client-IP 是我们从上游获取的带有实际用户 IP 的标头。
在 nginx 的 conf.d 中的当前 discourse.conf 文件中,我们有默认设置:
对于我认为的所有通用路由
proxy_set_header Host $http_host;
proxy_set_header X-Request-Start "t=${msec}";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $thescheme;
proxy_pass http://discourse;
Discourse 是查看 X-Forwarded-For 还是 X-Real-IP 进行速率限制?我认为它查看的是 X-Forwarded-For,因为在 production.log 中我看到了我的反向代理的 IP。正确的解决方案是也将 X-Forwarded-For 改为查看 $remote_addr 吗?
从这个帖子来看,似乎有人直接删除了那一行 Last IP shows Reverse Proxy IP address - #5 by schleifer
谢谢