DiscourseのためのCaddyとCloudflareの設定

こんにちは皆さん、

community.website.com に Discourse を、website.com に WordPress を設定しました。リバースプロキシには Caddy を使用し、Let’s Encrypt で SSL を管理しています。いくつかの初期のハードルを乗り越え、SSL やリダイレクトを含め、すべてがスムーズに動作するようになりました。このセットアップに至ったのは、リバースプロキシを機能させようと数え切れないほど試みて失敗したからです。根本的な問題は、Docker や Discourse の経験がなかったことでした。

キャッシュと Discourse に関しても問題が発生する可能性があることは理解していますので、おそらく設定はシンプルにするか、問題を回避するためのルールが必要かもしれません。

現在のセットアップ:

  • Discourse: community.website.com で Docker 経由で実行中。
  • WordPress: website.com にインストール済み。
  • Caddy: リバースプロキシと Let’s Encrypt SSL を処理。
  • Cloudflare: DNS、ファイアウォール、CDN を設定中。

課題:

Cloudflare DNS をプロキシなし(DNS のみ)で使用すると、すべて完璧に動作します。Caddy が Let’s Encrypt SSL を管理し、問題はありません。

しかし、Cloudflare DNS をプロキシありに切り替えると、接続が失敗し、Cloudflare から「ウェブサイトがダウンしています」というエラーが表示されます。Caddyfile をルートとサブドメインの両方で http:// を使用するように更新し、Cloudflare で複数の SSL 設定(Flexible、Full、Full Strict)を試しましたが、接続を確立できませんでした。

Caddy と Cloudflare(SSL 付き)を Discourse とうまく連携させるには、どのように設定すべきでしょうか?

何か提案があれば、ぜひお聞かせください!

CloudflareのCDNおよびセキュリティサービスを利用している場合、オリジンサーバーに独自のSSL証明書を設定する必要はありません。代わりに、Cloudflareダッシュボード内のSSL/TLS設定に移動し、「オリジン証明書」を作成します。この証明書は、オリジンサーバーからCloudflareへのプロキシトラフィックを保護します。このオリジン証明書をオリジンサーバーにインストールすれば、すべてが正常に動作します。

「いいね!」 2

Caddy と Wordpress はホストマシンで実行していますか、それとも Docker コンテナとして実行していますか?

「いいね!」 1

@shannon1024 さん、ありがとうございます!初めてでしたが、スムーズに動作するようになりました。

「いいね!」 1

Dockerで実行しています。証明書のためにDiscourseディレクトリ内にディレクトリを作成しました。一発で作業が完了して驚きました:smile:

「いいね!」 1

「ステップ 5: SSL 証明書を使用するように Discourse を構成する」

  1. SSL 証明書を使用するように Discourse の NGINX 設定を編集します。通常、このファイルは /etc/nginx/conf.d/discourse.conf にあるか、Docker を使用している場合は /var/discourse/containers/ ディレクトリ内にあります。

  2. server ブロックに次の行を追加または変更します。

https://developer.tenten.co/discourse-with-cloudflare-ssl

CF オリジンサーバーを設定しようとしていますが、必要な変更を行うために discourse.conf ファイルの場所がこの段階でわかりません。通常はどこにありますか?

指示は、これらの場所で見つからなかったので、私の知る限りでは完全に正しくありません。

事前にご協力いただければ幸いです。