Ubuntu 12.04、nginx 1.2.0、uwsgi1.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 --
回答:
元の回答
以下のためのPython 2のUbuntu 11.10上、使用してupstart
、用のPythonプラグインをインストールuWSGI
してapt-get install uwsgi-plugin-python
、あなたの設定するには、iniファイルを使用している場合はuWSGI
アプリを、その後、追加plugins = python
の[uwsgi]
セクションと、それはこの問題を解決する必要があります。
編集:Python3およびUbuntu17.10用に更新
以下のためのPython 3のUbuntu 17.10上、使用してsystemd
、用のPythonプラグインをインストールuWSGI
してapt-get install uwsgi-plugin-python3
、あなたの設定するには、iniファイルを使用している場合はuWSGI
アプリを、その後、追加plugins = python
の[uwsgi]
セクションと、それはこの問題を解決する必要があります。
ファイルを使用してアプリを構成する方法など、python
/uWSGI
アプリの使用を開始する方法のini
詳細については、この便利なガイドをご覧ください。
uwsgi
アプリのiniファイルを意味します。ご想像のとおり、設定ファイルはもうありませんが、グーグルですばやく検索すると、この(一見)便利なガイドが作成されました。iniファイルの場所については、ほぼどこにでも現実的に存在する可能性があります。特に冒険心があれば、次のように、世界中の別のWebサーバーからそのiniファイルを提供することもできます。uwsgi --ini http://uwsgi.it/configs/myapp.ini
http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.htmlから、「リクエストを特定のプラグインにルーティングするには、ウェブサーバーは修飾子と呼ばれるマジックナンバーをuWSGIインスタンスに渡す必要があります。デフォルトではこれnumberは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;
}
私はPython3でUbuntu18.04を使用しています。以下はそれを機能させるために使用した正確な構成です。
Python 3uWSGIプラグインがインストールされている必要があります。
apt install uwsgi-plugin-python3
Nginxサイト構成は、uWSGIソケットを指している必要があります。後の手順で、ポートが構成と一致していることを確認してください。
location / {
uwsgi_pass 127.0.0.1:9090;
include uwsgi_params;
}
Nginx構成をリロードして、今行った変更を反映します。
systemctl reload nginx
構成には、コマンドライン引数またはiniファイルを使用できます。作成しましたuwsgi.ini
。ソケットアドレスがnginx構成と一致していることを確認してください。
[uwsgi]
socket = 127.0.0.1:9090
chdir = /var/www
processes = 4
threads = 2
plugins = python3
wsgi-file = /var/www/app.py
私のapp.pyには基本的な例があります:
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/plain')])
return [b"Hello World!"]
次に、コマンドラインからuWSGIサーバーを起動します。
uwsgi uwsgi.ini
service uwsgi start
。