这是我的运行 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插件安装了吗?
使用相同的配置,我可以重现该错误,但在安装 CGI 插件并使用 /tmp/uwsgi 中的新二进制文件运行后,它可以工作:
curl http://uwsgi.it/install | bash -s cgi /tmp/uwsgi