複数のサーバーでドメインを共有し、サブフォルダー(パスプレフィックス)を使用してDiscourseを提供する

WordPressブログがhttp://=DOMAIN=にあり、Discourseフォーラム(別のサーバーで実行されています)をhttp://=DOMAIN==PATH=から提供したいとします。どうすればよいでしょうか?


注意: これは、同じドメインの異なるフォルダーから複数のDiscourseインスタンスを提供するには機能しません。各サイトで異なるCookieを設定できるように、異なるサブドメインを使用する必要があります。


ドメインへのすべてのトラフィックを、トラフィックを正しいサーバーにルーティングできる1か所に送信する必要があります。このハウツーでは、Fastlyを使用します。したがって、Discourseは1つのサーバーで提供され、サイトの他の部分(WordPressなど)は1つ以上の他のサーバーで提供されます。

Dockerコンテナの変更

まず、サブフォルダーからDiscourseを提供する手順に従ってください

Fastly

次に、パスに基づいてトラフィックを適切な場所に送信するようにFastlyを設定します。Discourseは=PATH=から提供されていると仮定します。

メインのウェブサイトを指す新しいサービスを作成し、DNS設定を更新する手順に従います。

サービスに移動し、「Configure」をクリックします。変更を加えることができるように、バージョン2が選択されていることを確認してください。バージョン1は現在アクティブなバージョンであり、変更できません。

「Hosts」セクションで、Discourseサーバーを2番目のバックエンドとして追加します。

「Settings」タブで、リクエスト設定の下に「Discourse Pass」という名前の新しいエントリを追加し、アクションを「Pass」にします。

最後に、各ホストについて、条件を編集してトラフィックをルーティングする場所を指定します。

メインのウェブサイトの場合、Discourse以外のURLは一致する必要があります。

req.url !~ "^=PATH="

Discourseホストの場合、=PATH= URLが一致する必要があります。

req.url ~ "^=PATH="

「いいね!」 15