nginx + uwsgi: - 请求的不可用修饰符:0 -

Lis*_*sio 78 nginx uwsgi ubuntu-12.04

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
Run Code Online (Sandbox Code Playgroud)

在每个请求中,nginx回复502并且uwsgi写入以记录以下行:

-- unavailable modifier requested: 0 --
Run Code Online (Sandbox Code Playgroud)

SHa*_*Kie 104

与安装用于uwsgi蟒插件upstart蟒2uWSGI用于蟒3和添加apt-get install uwsgi-plugin-python到各个uwsgi应用程序配置解决了这个问题.

(当使用upstart时,最初回答了Ubuntu 11.10.使用systemd在Ubuntu 17.10上测试了Python 3).

  • 对于 Python 3,我必须执行 `plugins = python3` (4认同)

Lis*_*sio 22

解决方法是安装uwsgi-plugin-python3插件并添加--plugin python3选项以uwsgi启动命令

  • 请用更详细的信息写出答案,并用@SHaKie答案解决问题 (2认同)

sha*_*ane 15

我在Ubuntu上从upstart开始使用uwsgi.我通过运行解决了这个问题apt-get install uwsgi-plugin-python,然后plugins=python在/ etc/uwsgi/applications-available中添加到我的application.ini中.


jco*_*ctx 8

来自http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html,"要将请求路由到特定插件,Web服务器需要将一个称为修饰符的幻数传递给uWSGI实例.默认情况下,这number设置为0,映射到Python."

我正在使用9作为bash脚本,它正在运行.这个数字及其含义在这个页面上: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;
}
Run Code Online (Sandbox Code Playgroud)


小智 8

通过添加插件行修改您的 ini 文件。

    [uwsgi]
    plugins         = python3
Run Code Online (Sandbox Code Playgroud)