4

複数のドメインで複数の Django アプリを提供するにはどうすればよいですか?

たとえば、私は

djangoapp1.com および djangoapp2.com

次に、2 つの別々の場所に 2 つの別々のアプリがあります

/srv/www/djangoapp1 /srv/www/djangoapp2

私は mod_wsgi で Apache2 を実行しています。現在、httpd.conf に次のものがあります。

WSGIScriptAlias / /srv/www/app1/app1/wsgi.py
WSGIPythonPath /srv/www/app1

<Directory /srv/www/app1/system>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

また、明らかに仮想ホストがあり、djangoのデフォルトのインストールページが表示されますが、2番目のアプリを提供したいのですが、これを行う正しい方法を教えてもらえますか?

ジャンゴ V: 1.4.1

4

4 に答える 4

6

ここで採用できるアプローチは数多くありますが、簡単な答えはありません。要件と制約によって異なります。

おそらく機能する可能性のある最も簡単なことは、@Heddeによって提案されたアプローチである可能性が非常に高く、仮想ホスト内のサイトごとにWSGI構成を定義することです。

2番目の、おそらくより柔軟なアプローチは、各Djangoアプリケーションを独自のアプリケーションサーバー内で実行することです。たとえば、 gunicorn(できればアプリケーション固有の依存関係を分離するためにvirtualenvで)を異なるポートで実行し、ApacheまたはNginxをアプリケーショントラフィックのプロキシとして使用します。

これには、管理するサーバー環境がより複雑になりますが、アプリケーションを個別に管理できるという利点があります。

単一のモノリシック プロセスを再起動するのではなく、一度に 1 つのアプリケーションについて、使用可能なワーカーの再構成、アプリケーション バージョンのアップグレード、settings.py の変更などを行うことができます。

さらに、もちろん可能ですが、同じ Apache プロセス内の仮想ホストを監視することは、個々のアプリケーション サーバー インスタンスを個別に監視するよりも複雑です。

YMMV

于 2012-08-28T10:31:54.933 に答える
5

Apache のVirtualHostsを使用できます

Django の例はたくさんあります。

于 2012-08-28T10:11:37.923 に答える
0

これが役立つかどうかを確認してください

apache2.conf または htppd.conf で

# Virtual hosts setup
NameVirtualHost *
<VirtualHost *>
    ServerName example1.com
    ............    
    WSGIScriptAlias / /..../path/to/wsgi1.py
</VirtualHost>

<VirtualHost *>
    ServerName example2.com
    ............    
    WSGIScriptAlias / /..../path/to/wsgi2.py
</VirtualHost>
in wsgi1.py

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings1' # or projectnaame.settings1
in wsgi2.py

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings2' # or projectname.settings2
In settings1.py & settings2.py you can make necessary databases and other configurations
于 2016-05-02T09:48:18.760 に答える