使用 Nginx 进行 uwsgi 配置,使用 python 脚本作为 cgi - 502 Bad Gateway

使用 Nginx 进行 uwsgi 配置,使用 python 脚本作为 cgi - 502 Bad 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,当 url 中包含“/cgi-bin/”时,其中一个必须指向目录 /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 似乎缺少了一些东西。我收到“502 Bad Gateway”。我缺少了什么。为了以这种方式使用 python 脚本?

编辑:

此外,每次我请求 URLhttp://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

CGI插件安装了吗?

在 uWSGI 上运行 CGI 脚本

使用相同的配置,我可以重现该错误,但在安装 CGI 插件并使用 /tmp/uwsgi 中的新二进制文件运行后,它可以工作:

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

相关内容