CloudFlare ユーザー向け: 通常 IP の代わりに HTTP ヘッダーの CF-* フィールドを使用する方法は?

CloudFlare は訪問者の IP アドレスを隠蔽するため、CloudFlare が挿入する HTTP ヘッダーから CF-Connecting-IPX-Forwarded-ForCF-IPCountry などの CloudFlare 固有のフィールド を取得し、それらを 管理 > ユーザー > ユーザー名 ページで条件付きで表示できるようにすると便利です。これにより、CloudFlare では役に立たない IP フィールドや IP 検索ボタンの他に、これらの情報を表示できます。

CF-* ヘッダーフィールドが利用可能な場合、これらのフィールドをこのページで提供していただくことは可能でしょうか?

一つの実装案として(私が他の Rails アプリで採用した方法ですが)、これらのフィールドが利用可能な場合は IP の代わりにそれらを使用するという方法があります。実装したのはかなり前ですが、記憶が正しければ、CF-Connecting-IP が存在しない限り、訪問者の IP を通常の IP に設定していたと思います… ただし、X-Forwarded-For については他に何か行った記憶があるのですが…

Cloudflare の提供テンプレートを使用すれば、これらはすべて自動的に処理されます。これは実際、Discourse 内で 4〜5 年前から利用可能です。

標準的なインストール手順に従ったと仮定して:

cd /var/discourse
nano containers/app.yml

次に、templates の下にこの行を追加します:

- "templates/cloudflare.template.yml"

その後、再構築を実行するだけです:

./launcher rebuild app

これにより、インストールされた環境で実際のユーザーアドレスが表示されるようになります。

それは素晴らしいですね、スティーブン、ありがとう!そんな単純なことなので、デフォルトでコメントアウトして含めるか、どこかにドキュメントとして記載すべきでしょう。少なくとも今では「CloudFlare」で検索すればここで見つけることができます。templates フォルダを確認しようなんて思いもしませんでしたね!:slight_smile: