1

以下を使用して、nginx + uwsgi に単一の pylons アプリを正常にデプロイしました。

uwsgi --paste config:/var/www/sites/helloworld/development.ini --socket :3031 -H /var/www/virtualenv

ただし、仮想ホスト 3 サイトに nginx を使用しています。

このチュートリアルと unbit のメイン uwsgi サイトの uwsgi/wiki/DynamicApps ページに基づいて、3 つの別々のポートを介して 3 つのマスター プロセス用に 3 つの別々の uwsgi init.d スクリプトを作成することなく、アプリを動的に uwsgi に追加できます。

nginx 仮想ホスト構成はチュートリアルと同じようにセットアップされていますが、UWSGI_SCRIPT 値に問題があります。app.wsgi (/var/www/sites/helloworld/app.wsgi にあります) に設定しました。スクリプト コードは次のとおりです。

from paste.deploy import loadapp
wsgi_app = loadapp('config:/var/www/sites/helloworld/development.ini')

しかし、このスクリプトに関する直接的な情報は見つかりません。代わりに app_wsgi.py という名前が付けられていると思われますか、それともまったく別のコードですか? そして、それはどこにあるはずですか?サイトにアクセスすると、「uWSGI エラー - wsgi アプリケーションが見つかりません」というメッセージが表示され、uwsgi.log に次のように表示されます。

interpreter for app 0 initialized.
ImportError: No module named app.wsgi
[pid: 7287|app: -1|req: -1/24] XXX.XXX.XXX.133 () {48 vars in 782 bytes} [Fri Aug 13 18:41:22 2010] GET /page/view/0 => generated 46 bytes in 8 msecs (HTTP/1.1 500) 2 headers in 63 bytes (0 async switches on async core 0)
4

1 に答える 1

1

それは私のためにこのように働いた:

location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:5000;
        uwsgi_param UWSGI_PYHOME /home/don/dev/envs/pylons; #this is my virtualenv
        uwsgi_param UWSGI_CHDIR /home/don/dev/envs/pylons/apps/helloworld; #so app.py can be found
        uwsgi_param UWSGI_SCRIPT app; # app.py: where i put loadapp code
        uwsgi_param SCRIPT_NAME ""; # this line is needed, don't know what it means
}

次に、--vhost [--no-site] で uwsgi を開始します。マスター プロセスとワーカー プロセスで uwsgi を開始する場合は、development.ini で debug を false に設定することを忘れないでください。また、アプリ名を wsgi_app からアプリケーションに変更します。これが uwsgi です。探しに行く

于 2011-01-29T04:19:11.873 に答える