1

サーバー側にdjangoを使用してWebアプリを開発しています。Android、iOS、およびフロントエンドにクライアントがあります。これらのクライアントの URL を区別するためにサブドメインを使用することを考えていました。この違いは、URL への応答がクライアントごとに異なるという事実によるものです。android.example.comios.example.com ...などのサブドメインを使用できることを望んでいました。私のサブドメインは固定されています。

これを達成するために私がとるべきアプローチについて教えてください。私が読んだいくつかのオプションは

  • 同じデータベースで 2 つの異なるプロジェクトをホストしています (私にはかなり良さそうですが、最適ではないかもしれません)。
  • サイト フレームワークを使用して同じインスタンスでホスティングします。(このオプションがどれほど優れているかはわかりません)
  • virtual-host を使用したホスティング (これを実現する方法を本当に理解できません)。
  • 多くの回答といくつかのDjangoスニペットで言及されているように、サブドメインミドルウェアを使用します。

最適なオプションを教えてください。可能であれば、それを実現する方法に関するいくつかのチュートリアルへのリンクを提供してください。ありがとう。

4

1 に答える 1

1

「サイト フレームワークを使用する」ことは、同じデータベースで 2 つのプロジェクトをホストすることと同じです。サイト フレームワークを使用する場合、同じコード ベースとデータベースを共有するサブドメインごとに個別のインスタンスを持つことになりますが、そもそもSITE_ID.

複数のインスタンスを実行できる場合、これには確かにいくつかの利点があります。

  • ミドルウェアによる追加処理は不要
  • サイトごとに異なる設定を簡単に選択できます。異なるテンプレート パス、異なるミドルウェアの使用など、必要に応じてプロジェクトごとに URL をカスタマイズすることもできます
  • 個別のインスタンスにリクエストを送信しているため、すでに何らかの負荷分散を行っています。また、1 つのサイトがクラッシュしても、他のサイトに影響を与えるべきではありません。

インスタンスを 1 つしか実行できない場合は、ミドルウェアのようなものを使用するしかないと思います。django-mobileは、クライアントのタイプなどを判断するための優れたツールセットを提供するため、おそらく検討すべきものです...

ただし、SEOに関しては、同じコンテンツを持つ別のドメインを持つことが常にベストプラクティスであるとは限らないことに注意してください.

于 2013-06-15T18:03:15.370 に答える