2つの異なるDjangoアプリを同じホストにデプロイしたい:最初のアプリはURL/site1に対応し、2番目のアプリはURL/site2に対応します。これが私の構成です。
LoadModule wsgi_module modules/mod_wsgi.so WSGIScriptAlias/site1 /var/www/py/site1/site1/wsgi.py WSGIScriptAlias/site2/var/www/py/site2/site2/wsgi.py WSGIPythonPath/var/www/py/site1:/ var/www/py/site2 <ディレクトリ "/var/www/py/site1/site1"> <Fileswsgi.py> Order deny、allow Allow from all </ Files > </ Directory> <Directory "/var/www/py/site2/site2"> <Fileswsgi.py> Order deny、allow Allow from all </ Files> </ Directory>
また、両方のアプリケーションのwsgi.pyファイルもあります
import os import sys path = '/ var/www/py/site1' パスがsys.pathにない場合: sys.path.append(path) os.environ.setdefault( "Django_SETTINGS_MODULE"、 "site1.settings") from Django.core.wsgi import get_wsgi_application application = get_wsgi_application()
さて、これが私の問題です。サーバーにアクセスすると、たとえば http://app1.sites.gr/site1 site1が読み込まれることもあればsite2が読み込まれることもあります!!!!私が訪問したときも同じことが言えます http://app1.sites.gr/site2 ...サイト1のウェルカムページが表示される場合もありますが、サイト2のウェルカムページが表示される場合もあります。 F5を押して、さまざまなウェルカムページを取得しています。私は過去数時間すべてをチェックしましたが、奇妙なことは何も見つかりませんでした...
気が狂う前に何が問題なのか教えてください...
ありがとう!
これは、Django 1.4によって生成されたwsgi.pyファイルの問題です。同じプロセスで2つの異なるDjangoインスタンスをホストしようとすると、機能しません。別々のサブインタープリターであっても。
変化する:
os.environ.setdefault("Django_SETTINGS_MODULE", "site1.settings")
に:
os.environ["Django_SETTINGS_MODULE"] = "site1.settings"
または、デーモンモードを使用し、それぞれを委任して、個別のデーモンプロセスグループで実行することをお勧めします。
つまり、次の代わりに:
WSGIScriptAlias /site1 /var/www/py/site1/site1/wsgi.py
WSGIScriptAlias /site2 /var/www/py/site2/site2/wsgi.py
WSGIPythonPath /var/www/py/site1:/var/www/py/site2
使用する:
WSGIDaemonProcess site1 python-path=/var/www/py/site1
WSGIScriptAlias /site1 /var/www/py/site1/site1/wsgi.py process-group=site1 application-group=%{GLOBAL}
WSGIDaemonProcess site2 python-path=/var/www/py/site2
WSGIScriptAlias /site2 /var/www/py/site1/site2/wsgi.py process-group=site2 application-group=%{GLOBAL}
更新
現在、これと他の原因についてのブログ投稿全体があることに注意してください。
Graham Dumpletonの応答は、おそらく最も近くで読みたいものですが、同じドメインのルート以外の場所ではなく、異なるサブドメインのルートで2つのDjangoをホストすることで、胸焼けを大幅に減らすことをお勧めします。非ルートDjangoサイトIMHOを実行するための落とし穴がたくさんあります。
幸運を!
アプリは同じポートでリッスンしますが、アプリを別のポートに委任するプロキシはないようです。
Apache内でVirtualHostsをセットアップするか、Nginx、lighttpdなどを使用して適切なプロキシを作成する必要があります