web-dev-qa-db-ja.com

Nginxを使用したuwsgi構成、pythonスクリプトをcgiとして-502Bad Gateway

これは、uwsgi「pyApp.py」を実行するための私の.iniファイルです。

[uwsgi]
plugins = cgi
socket = 127.0.0.1:9010
cgi = /=/usr/share/test/
cgi-allowed-ext = .py
cgi-helper = .py=python

/usr/share/test/firstapp.pyの場所に「firstapp.py」というファイルがあります。その内容は次のとおりです。

#!/usr/bin/python
print "Content-type: text/html\n\n"
print "<html><body><h1>It works! Cool!!</h1></body></html>"

コマンドでuwsgiのインスタンスを実行しています

uwsgi --http :9011 --http-modifier1 9 --ini pyApp.ini --master

Nginxを使用していくつかのvhostを構成しました。また、「/ cgi-bin /」を含むURLがある場合、そのうちの1つはディレクトリ/ usr/share/test /を指している必要があります。

Nginxの設定は-[他の中で唯一のデフォルトのものでもあります]

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /var/www/pythonsite.com/html;
        index index.html index.htm;

        server_name pythonsite.com www.pythonsite.com;

        location / {
                try_files $uri $uri/ =404;
        }

        location /cgi-bin {
                include uwsgi_params;
                uwsgi_modifier1 9;
                uwsgi_pass 127.0.0.1:9010;
        }
}

しかし、ブラウザからURLを介して「cgi」スクリプトにアクセスしようとすると

http://pythonsite.com/cgi-bin/firstapp.py

デフォルトのURL「pythonsite.com」は正常に機能しているようですが、「cgi-bin」が含まれている上記のURlには何かが欠けているようです。 「502BadGateway」が表示されます。私は何が欠けています。 pythonスクリプトをこのように使用するには?

編集:

また、ブラウザでURL http://pythonsite.com/cgi-bin/firstapp.py "をリクエストするたびに、uwsgiサーバーインスタンスに次のようなログがあります。

-- unavailable modifier requested: 9 --

編集2:

uwsgiログで、127.0..0.1:9010の「無効なリクエストブロックサイズ:21573(最大4096)...スキップ」が表示され、ブラウザページで接続がリセットされました

および「127.0.0.1:9011/」の場合。ブラウザに「内部サーバーエラー」メッセージが表示されます。およびuwsgiは"--- no python application found, check your startup logs for errors ---"としてログに記録します

何がうまくいかない可能性がありますか? :|

1
Archer

CGIプラグインはインストールされていますか?

WSGIでのCGIスクリプトの実行

同じ構成でエラーを再現できますが、CGIプラグインをインストールし、/ tmp/uwsgiの新しいバイナリを使用して実行すると機能します。

curl http://uwsgi.it/install | bash -s cgi /tmp/uwsgi
1
hdanniel