レート制限に使用されているヘッダーについて質問があります。コンテキストとして、set_real_ip を含む nginx.conf を使用しており、クライアントの実際のIPを Some-Client-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 のどちらを参照していますか? production.log でリバースプロキシのIPが表示されるため、X-Forwarded-For を参照していると思われます。正しい解決策は、X-Forwarded-For を $remote_addr を参照するように変更することでしょうか?
このスレッドでは、誰かがその行を完全に削除したようです Last IP shows Reverse Proxy IP address - #5 by schleifer
よろしくお願いします。