24

同じホストに2つの異なるdjangoアプリをデプロイしたいと思います。1つ目は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">
<ファイルwsgi.py>
注文拒否、許可
すべてから許可する
</ファイル>
</ディレクトリ>

<ディレクトリ"/var / www / py / site2 / site2">
<ファイルwsgi.py>
注文拒否、許可
すべてから許可する
</ファイル>
</ディレクトリ>

また、両方のアプリケーションのwsgi.pyファイルもあります

OSのインポート
sysをインポート

パス='/var / www / py / site1'
パスがsys.pathにない場合:
    sys.path.append(path)

os.environ.setdefault( "DJANGO_SETTINGS_MODULE"、 "site1.settings")
django.core.wsgiからインポートget_wsgi_application
アプリケーション=get_wsgi_application()

さて、これが私の問題です。サーバーにアクセスすると、http: //app1.sites.gr/site1でsite1が読み込まれることもあれば、site2が読み込まれることもあります!!!! http://app1.sites.gr/site2にアクセスしたときも同じ です...サイト1のウェルカムページが表示される場合があります。サイト2のウェルカムページが表示される場合もあります。F5を押して、さまざまなウェルカムページを取得しています。私は過去数時間すべてをチェックしましたが、奇妙なことは何も見つかりませんでした...

気が狂う前に何が問題になるのか教えてください...

ありがとう !

4

3 に答える 3

51

これは、Django1.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}

アップデート

現在、これと他の原因についてのブログ投稿全体があることに注意してください。

于 2012-07-17T03:27:48.043 に答える
1

アプリは同じポートでリッスンしますが、アプリを別のポートに委任するプロキシはないようです。

Apache内でVirtualHostsを設定するか、Nginx、lighttpdなどを使用して適切なプロキシを作成する必要があります

于 2012-07-16T13:55:34.170 に答える
1

Graham Dumpletonの応答は、おそらく最も近くで読みたいものですが、同じドメインのルート以外の場所ではなく、異なるサブドメインのルートで2つのDjangoをホストすることで、胸焼けを大幅に軽減することをお勧めします。ルート以外のDjangoサイトIMHOを実行するための落とし穴はたくさんあります。

幸運を!

于 2012-07-17T03:48:39.467 に答える