IP Lookup が CDN の X-Forwarded-For を取得

Hi Discourse community!

Am I correct to assume that IP Lookup gets the last IP from the X-Forwarded-For header? Cloudfront seems to be attaching their IP at the end.

How would we modify nginx to remove the last IP in the X-Forwarded-For header? We were hoping to get the client IP to prevent spammers.

Could anyone please provide help / guidance?

Cheers

Just wanted to check if anyone else has a workaround for something like this?

Hi, did you check this?

「いいね!」 1

Have a look at Running other websites on the same machine as Discourse

Cloudflareのプロキシを有効にした際に、この問題が発生しました。

Nginxの設定を変更することで解決しました。すべてのプロキシIPアドレスを見つけ、それぞれのhttpセクションに以下を追加する必要があります。

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アドレスは変更される可能性があるため、これらを自動的に取得して更新する必要があります。

その後、以下でnginxをリロード/再起動します。

sv nginx reload または sv nginx restart

ああ。もっと早くこの投稿を見ていればよかった!今日、すでに存在するものを作り直すのに1時間費やしてしまいました。X-Forwarded-ForプロキシタグがDiscourseで認識されない?:

「いいね!」 2

Cloudflare から IP リストを自動的に更新するため、組み込みソリューションに切り替えることをお勧めします。サイトを再構築するときに!

「いいね!」 3

リビルドに頼るよりも、定期的にチェックするcronジョブを設定する方が良いでしょう。

あまり頻繁には変更されないようですね: https://community.cloudflare.com/t/how-often-do-cloudflare-ips-change/9802/7

2年は私が思っていたよりも頻繁です。

しかし、チェックは非常に簡単なので、1日1回行っても問題ありません。IPアドレス範囲が有効になる数日前にリストが更新されることを願っています。