mreach
(M. Reacher)
2019 年 10 月 27 日午前 5:05
1
CloudFlare は訪問者の IP アドレスを隠蔽するため、CloudFlare が挿入する HTTP ヘッダーから CF-Connecting-IP、X-Forwarded-For、CF-IPCountry などの CloudFlare 固有のフィールド を取得し、それらを 管理 > ユーザー > ユーザー名 ページで条件付きで表示できるようにすると便利です。これにより、CloudFlare では役に立たない IP フィールドや IP 検索ボタンの他に、これらの情報を表示できます。
CF-* ヘッダーフィールドが利用可能な場合、これらのフィールドをこのページで提供していただくことは可能でしょうか?
一つの実装案として(私が他の Rails アプリで採用した方法ですが)、これらのフィールドが利用可能な場合は IP の代わりにそれらを使用するという方法があります。実装したのはかなり前ですが、記憶が正しければ、CF-Connecting-IP が存在しない限り、訪問者の IP を通常の IP に設定していたと思います… ただし、X-Forwarded-For については他に何か行った記憶があるのですが…
Stephen
(Stephen)
2019 年 10 月 27 日午前 6:45
2
Cloudflare の提供テンプレートを使用すれば、これらはすべて自動的に処理されます。これは実際、Discourse 内で 4〜5 年前から利用可能です。
標準的なインストール手順に従ったと仮定して:
cd /var/discourse
nano containers/app.yml
次に、templates の下にこの行を追加します:
- "templates/cloudflare.template.yml"
その後、再構築を実行するだけです:
./launcher rebuild app
これにより、インストールされた環境で実際のユーザーアドレスが表示されるようになります。
mreach
(M. Reacher)
2019 年 10 月 27 日午後 3:54
3
それは素晴らしいですね、スティーブン、ありがとう!そんな単純なことなので、デフォルトでコメントアウトして含めるか、どこかにドキュメントとして記載すべきでしょう。少なくとも今では「CloudFlare」で検索すればここで見つけることができます。templates フォルダを確認しようなんて思いもしませんでしたね!