現在、私はDjangoで書かれた1つのアプリケーションで動作する30以上のWebサイトを展開しています。サイトは小グループにまとめられています。たとえば、ドイツ、フランス、スイスなどのウェブサイトを含むグループヨーロッパがあります。これらのグループは7つです。DRY設定で複数のDjangoサイトを展開するには?
デプロイメント用には、uwsgi(Emperiorモードで動作)、nginx(グループソケットに渡すuwsgi)、supervisord (タスクワーカー用)が使用されます。アプリケーションは、すべてのWebサイトに対して単一のデータベースを使用しています。
次のようにプロジェクトの設定ファイルの構造は現在、次のとおりです。
project.settings.general_settings
project.settings.<group_name>
これまでのところ、私は単に7 uwsgiを持っており、7には十分だろうと思いましたいくつかのウェブサイトがカスタムDjango設定を必要とすることを理解し、DJANGO_SETTINGS_MODULE
を個別のWebサイトごとに定義する必要があります(これらのWebサイトの一部はdiffeです家賃の言葉で言えます)。心に留めておくべき
もの:
- すべてのそれら〜30点の異なるウェブサイトの設定を維持するための戦略でしょうか?グループ設定もインポートする必要があります。
- 現在、
DJANGO_SETTINGS_MODULE
はNginxとuwsgiの両方の設定ファイルで指定されています。この重複を避ける方法はありますか? - uwsgiアプリケーションの量を減らす方法はありますか(おそらくuwsgiは7つのuwsgiグループしかなく、nginxからのみ設定モジュールを指定します)。
- ボーナス:本番環境に加えて、ステージング環境もあります。そこにも重複を避ける最良の方法は何でしょうか?これまで考えられていた何
:
- は、ウェブサイトの設定(
LANGUAGES
、LANGUAGE_CODE
、など)データベースに保存され、動的に要求ごとに変更のいくつかを持っています。その考えは拒否された、as it obviously sucks。 - 仮想ホスティングモードでuwsgiを使用してください。 7つのuwsgiアプリしか持たず、Nginxとは異なる設定を指定することができます。拒否されました:insecure, unreliable, scaling issues。
nginxの設定で 'DJANGO_SETTINGS_MODULE'を指定する必要はありません。ここで何か間違っているので、あなたのnginxとuwsgi設定ファイルを表示してください。 – GwynBleidD
Nginxの設定:http://pastebin.com/1xC79Uir uWSGIの設定:http://pastebin.com/8S4hmZz1 –
nginxの設定から安全に削除できます。何も変更されません。 – GwynBleidD