1

十数個の仮想ホストがセットアップされたサーバーで Django を実行しています。私がまとめた最初の Django サイトはうまく機能しますが、2 つ目のサイトをセットアップしようとしています。2 番目の fastcgi プロセスを実行する必要がありますか?

最初のサイトでは、この方法で fcgi を実行しています:

/home/django/app1/manage.py runfcgi protocol=fcgi host=127.0.0.1 port=8081

ドメインの nginx 構成は、その fcgi プロセス (fastcgi_pass 127.0.0.1:8081) を指しています。

2 番目のサイトでは、サイトごとに 1 つの fcgi のように、fcgi の別のコピーを実行する必要がありますか?:

/home/django/app2/manage/py runfcgi protocol=fcgi host=127.0.0.1 port=8082

そして、nginx 構成をそのプロセス (fastcgi_pass 127.0.0.1:8082) に転送しますか?

または、単一の fastcgi で複数の Django サイトを処理する方法はありますか? マルチ Django サーバーをセットアップするためのベスト プラクティスはありますか?

4

2 に答える 2

2

サイトの意味と、Django の構成がどのように見えるかによって異なります。

各 Django settings.py は、1 つのデータベースと urls.py ツリーを 1 つだけ定義します。

各 Django には、1 つの settings.py -- 1 つのデータベース -- 1 つの urls.py ツリーがあります。

各サイトに個別のデータベースがある場合、それらには個別の settings.py が必要であり、個別の fastcgi インスタンスが必要になります。

すべてのサイトが単一の settings.py を使用して単一のデータベースでサポートされている場合、単一の fastcgi インスタンスからすべてのサイトを絞り出すことができます。

Django の urls.py ハンドラーは、リクエストの URL 解析でホスト名とポート番号をほとんど無視することに注意してください。ただし、Sites モデルを含める場合は、仮想ホスト名を要求処理の一部にすることができます。

于 2009-04-23T00:38:33.267 に答える
0

価値があるのは、tcp オーバーヘッドをなくして、代わりにソケットを使用できることです。

/home/django/app1/manage.py runfcgi protocol=fcgi socket=/var/run/mysite.sock

ソケットは、Web サーバー ユーザーが読み書きできる必要があります。

于 2009-04-25T17:13:08.340 に答える