2009-06-17 10 views
6

私は、サイトの残りの部分とは異なるサブドメインに特化したRSSフィードを提供したいと考えています。「サイトフレームワーク」を1つのジャンゴインスタンスに追加

サイトフレームワークを使用して、別のurls.pyとsettings.pyファイルを1つのdjangoインスタンス内で使用できますか。または、私は2つのApacheの場所を設定する必要がありますし、ちょうどApacheのconfの異なるsettings.pyファイルを設定します。

2つのurls.pyファイルを設定する理由は、重複するコンテンツを避けるためです。私はメインサイトをrss.example.comで利用できないようにしたいと考えています。私は特別なフィードをexample.comからアクセスできないようにしたいと考えています。

単一のdjangoインスタンスからサービスを提供するのは、限られたメモリで共有ホスティングを再開すると、rssだけを提供するインスタンスを開いておくのは、このような浪費のようです。

編集:私は別々のurls.pyファイルを持つ複数のインスタンスは、私にとって最も簡単だろうと結論付けた...しかし、私は単一のインスタンスを使用してそれを行う方法を説明し、この記事を見つけた:

http://effbot.org/zone/django-multihost.htm

ソリューション:Django tupperware

私は1つのdjangoインスタンスに複数のサイトコピーを実行するためのフレームワークを作成しました。

基本的な考え方は、リクエストごとにオンザフライでSITE_IDの設定を変更し、データベースから代替設定を読み込むことです。これはドメインに基づいており、デフォルトでSITE_ID = 1を使用します(何も見つからない場合)

settings.pyファイル内のすべての設定は、現在のサイトのデータベースに格納されている設定によって上書きされるデフォルトとして機能します。

は、それはかなりうまく動作します:)とSITE_IDがsettings.pyで定義されており、サイトのための重要ですので、それは...あなたはサイトごとにユニークなsettings.pyを持っている必要があります株式ジャンゴでhttp://rootbuzz.com

+0

をあなたはまだタッパーウェアを使用していますか?あるいは、より良い新鮮な選択肢を見つけましたか? –

+0

@ MuratCorlu Tupperwareはまだそのプロジェクトでプロダクションで使用しています:) – Jiaaro

+0

私はDjango 1.7でそれを使用しようとしましたが、期待通りに動作しませんでした。また、プロジェクトはBitbucketで死んでいるようだ。タッパーウェアの使い方の設定例を共有できますか? –

答えて

10

で生産して実行していますこのリクエストを処理しています。

つまり、SITE_IDはインスタンスに対してグローバルであるため、各サイトにインスタンスが必要です。

そこにすべてのあなたのサイトsettings.pyファイルで同じROOT_URLCONFを使用してからあなたを防ぐことは何もないです...またはあなたが各サイトにdiffent 1を持つことができますので、ご希望の場合は、共通のurls.pyを持つことができます。この場合、共通URLの繰り返しを避けるため、サブURLを含めることをお勧めします。

がありますが、単一のインスタンスからサーブしようとすることができ、少なくとも2つの方法です:

  1. 利用のapache + mod_wsgiWSGIApplicationGroupおよび/またはWSGIProcessGroupディレクティブを使用します。私はこれらを必要とすることはありませんでしたので、これらがあなたが望むように動作するかどうかは完全にはわかりませんが、デーモンモードでmod_wsgiを使用してメモリ使用量を大幅に向上させることはできます。

  2. Djangoミドルウェアを使用して、要求ホスト名に基づいてURLを拒否または許可することができます(DjangoドキュメントのHttpRequest.get_host()を参照)。たとえそれがわずかなパフォーマンスヒットにもかかわらず、着信ホストをチェックするすべてのビューにデコレータを配置することができます。 FYI

+0

ありがとう!これは私が知る必要があったものです – Jiaaro

+0

このサブドメインは特殊なRSSフィードしか扱っていないので、RAMを節約するためにmaxRequestsPerChildを1に設定します。私が知っておくべき悪い点(スピードペナルティ以外) – Jiaaro

+0

PS - 私はちょうど新しいインスタンスを作ることに決めました...私は非常に多くのビューを持っているので、すべての単一の上にデコレータを置くことがあります – Jiaaro

関連する問題