クライアントがサービスWebサイトの自分のページにカスタムドメインを設定できるようにするにはどうすればよいですか?

Jun 03 2020

インターコムがクライアントに提供するのと同じ機能を実装したいと思います。記事のカスタムドメインの実装を許可します。彼らがどのように彼らの実装方法を実行しているのか、あるいは彼らが舞台裏で何をしているのか、正確にはよくわかりません。

次のシナリオを考えてみましょう。クライアント(NorthWind社)は、私の会社のWebサイト(northwind.example.com)にサブドメインを持っています。

以下が発生します。

  • ユーザーがを入力すると、URLバーnorthwind.example.comに移動しnorthwind.example.comnorthwind.example.com表示されます。
  • ユーザーがを入力すると、URLバーexample.northwind.comに移動しnorthwind.example.comexample.northwind.com表示されます。

インターコムがそれを実装する方法と私がそれを実装したい方法の違いは、上記のリンクされたインターコムのヘルプ記事に見られるように、ディレクトリではなくサブドメインを使用していることです。


私のウェブサイトがNginx、NodeJS、MongoDBで実行されていることを考えると、これまでに思いついたものは次のとおりです。

  • クライアントは、ドメインプロバイダーにCNameレコードを登録して、私のWebサイトのページをポイントします。
  • クライアントは、使用したCNameレコードを私のWebサイトに提供します(フォームから登録します)。
  • 会社とそのカスタムドメインのレコードをMongoDBに保存します。
  • リダイレクトが通過できるようにredbirdを使用して、自分のWebサイトのリバースプロキシを登録または再登録します。

URLを変更せずにWebページを別のサイトにリダイレクトする方法をすでに調べましたが、Cnameを使用するとブラウザに表示されるURLが変更されます。

私は正しい道を進んでいますか、それとももっと良い方法がありますか?

回答

5 yaharga Jun 09 2020 at 14:14

私は、サポートチャネルを通じてインターコム自身に回答を求めることにしました。その結果、次のような回答が得られました。

これは実際には私たちが特別なことをすることではなく、私たちの側とクライアントの側の両方でのWebサーバーの構成に関係しています。

このstackoverflowはこれについてさらに詳しく説明しますが、これはruby StackOverflowであり、Webサーバーのセットアップ(この場合はnginx)に焦点を当てていますが、任意のWebサーバーソフトウェアである可能性があることに注意してください。

nginxproxy_passでリクエストURLを保持する方法

これにより、サービスはリクエストを受信できるだけでなく、元のサーバーアドレスにもアクセスできるようになります。次に、サーバーアドレスを正しいヘルプセンターに変換できるように、記事設定内で使用しているカスタムドメインを提供するようにお客様に依頼します。

これがお役に立てば幸いです。フォローアップの質問がある場合は、喜んでお手伝いさせていただきますが、おっしゃるように、これは私たちのチームの範囲外であるため、提供できるサポートが限られている可能性があります。

彼らは私のために上を超えて行ったので、応答に非常に満足しています。基本的に、私が通っていた道は正しい道でした。私は他の人を助けるために質問を残すことにしました。また、次の関連する質問を見つけました。

  • ユーザーに対してカスタムドメインを有効にするにはどうすればよいですか?
  • Saasソフトウェアにcnameフォワードサポートを提供する方法
  • Saas製品の顧客向けのカスタムドメイン機能

これを見つけた人に頑張ってください。