web-dev-qa-db-ja.com

nginx + uwsgi:-要求された使用不可の修飾子:0-

Ubuntu 12.04、nginx 1.2.0、uwsgi 1.0.3。

次のコマンドでuwsgiを起動します。

uwsgi -s 127.0.0.1:9010 -M -t 30 -A 4 -p 4 -d /var/log/uwsgi.log

要求ごとに、nginxは502で応答し、uwsgiは次の行を記録するために書き込みます。

-- unavailable modifier requested: 0 --
76
Lisio

元の答え

Ubuntu 11.10上のPython 2の場合、upstartを使用して、python uWSGI with apt-get install uwsgi-plugin-pythonそして、iniファイルを使用してuWSGIアプリを構成している場合は、plugins = pythonから[uwsgi]セクションでこの問題を解決する必要があります。

編集:Python 3およびUbuntu 17.10用に更新

Ubuntu 17.10上のPython 3の場合、systemdを使用して、python uWSGI with apt-get install uwsgi-plugin-python3そして、iniファイルを使用してuWSGIアプリを構成している場合は、plugins = pythonから[uwsgi]セクションでこの問題を解決する必要があります。

pythonファイルを使用して設定する方法など、uWSGI/iniアプリの使用を開始する方法の詳細については、この便利な ガイドをご覧ください。

102
SHaKie

uwsgi-plugin-python3プラグインをインストールし、--plugin python3オプションをuwsgi startコマンドに追加することで解決しました

22
Lisio

Ubuntuのupstartからuwsgiを起動しています。 apt-get install uwsgi-plugin-pythonを実行してからplugins=pythonを/ etc/uwsgi/applications-availableのapplication.iniに追加することで問題を解決しました。

15
shane

from http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html 、「リクエストを特定のプラグインにルーティングするには、ウェブサーバーはuWSGIインスタンス。デフォルトでは、この数値は0に設定されており、Pythonにマップされます。」

私はbashスクリプトに9を使用していますが、機能しています。数字とその意味はこのページにあります: http://uwsgi-docs.readthedocs.org/en/latest/Protocol.html

私のnginx設定で:

location ~ .cgi$ {
    include uwsgi_params;
    uwsgi_modifier1 9;
    uwsgi_pass 127.0.0.1:3031;
}
6
jcomeau_ictx