すべてのトラフィックがユーザーのブラウザ IP ではなく Cloudflare サーバーから来ているように表示される問題を解決する方法

1panel コンテナで Discourse をデプロイし、リバースプロキシを設定して Web サイトを構築しました。ドメインに Cloudflare CDN を使用したところ、すべてのトラフィックがユーザーのブラウザ IP ではなく、Cloudflare のサーバーから来ているように表示される問題の解決方法を教えてください。

アプリの app.yml で Cloudflare テンプレート を使用したいですね。

「いいね!」 2

試してみましたが、ダメでした :rofl: 。失敗の原因は、1panel コンテナでデプロイし、リバースプロキシを使用していることかもしれませんね?

nginx 設定ファイルを直接編集することはできますか?可能であれば、こちら で提案されている変更を加えてください。その後、nginx サービスを再起動すれば正常に動作するはずです。参考になれば幸いです!

「いいね!」 1

ホスティング会社とCloudFlareの2つのリバースプロキシを実行する理由が気になります。技術的な理由があるのでしょうか?

「いいね!」 1

私はサーバー管理パネルの 1Panel(オープンソース)を使用して、Discourse をコンテナ化してデプロイしています。これによりサーバー管理が容易になります。

1Panel のアーキテクチャは以下の通りです:ユーザー -> Cloudflare -> 1Panel Nginx -> Discourse コンテナ

私の理解では、Discourse の app.yml 設定を変更しても、1Panel の Nginx は Cloudflare と Discourse の間に依然として存在し、中間に位置しています。

つまり、これは 1panel によって導入された技術的な制約です。

VPS で複数のサーバーを稼働させていますか、それとも Discourse だけを稼働させていますか?Discourse だけを稼働させている場合、1panel は不要なはずです。1panel が必要な技術的な理由がある場合を除きます。

私の Discourse は、Cloudflare の背後にある VPS でネイティブに稼働しています。この設定は問題なく動作しています。

Discourse 以外にも、OpenClaw がありますね :grinning_face:

「いいね!」 1

ほぼ間違いありません。

表示されている IP は 1panel コンテナの IP ですか?

管理者としてユーザーを表示すると、最後に使用されたIPアドレスがCloudflareのIPアドレスとして表示されます。

これを実装しましたか?

https://support.cpanel.net/hc/en-us/articles/360051107513-How-to-restore-visitors-IP-with-mod-remoteip#:~:text=The%20Apache%20mod_remoteip%20module%20restores%20the%20original,instead%20of%20the%20original%20visitor’s%20IP%20address.

これは、Cloudflare の IP アドレスではなくエンドユーザーの IP アドレスを使用するように Apache を修正するためのものです。

ありがとうございます。私は nginx を使用しています。いくつかのチュートリアルを確認したところ、ホストの nginx 設定ファイルにリバースプロキシを設定する方法が紹介されていました。時間ができたら試してみます。

Cloudflare のテンプレートを提案通りインストールしましたか?もしそうでないなら、なぜここで助けを求めているのですか?