Nginx:/etc/nginx/uwsgi_params:1 中的未知指令“uwsgi_param”

Nginx:/etc/nginx/uwsgi_params:1 中的未知指令“uwsgi_param”

使用此部署教程,我正尝试使用 Flask、uWSGI 和 Nginx 启动并运行 Ubuntu 12.04 服务器。我现在无法运行 Nginx。当我尝试(重新)启动 nginx 时,它只会显示...fail!,而当我运行测试(使用sudo nginx -t)时,它显示:

nginx: [emerg] unknown directive "uwsgi_param" in /etc/nginx/uwsgi_params:1
nginx: configuration file /etc/nginx/nginx.conf test failed

我没有更改该文件中的任何内容,因此其内容是默认内容:

uwsgi_param     QUERY_STRING            $query_string;
uwsgi_param     REQUEST_METHOD          $request_method;
uwsgi_param     CONTENT_TYPE            $content_type;
uwsgi_param     CONTENT_LENGTH          $content_length;

uwsgi_param     REQUEST_URI             $request_uri;
uwsgi_param     PATH_INFO               $document_uri;
uwsgi_param     DOCUMENT_ROOT           $document_root;
uwsgi_param     SERVER_PROTOCOL         $server_protocol;
uwsgi_param     UWSGI_SCHEME            $scheme;

uwsgi_param     REMOTE_ADDR             $remote_addr;
uwsgi_param     REMOTE_PORT             $remote_port;
uwsgi_param     SERVER_PORT             $server_port;
uwsgi_param     SERVER_NAME             $server_name;

我的服务器定义/etc/nginx/sites-available/www如下所示:

server {
    listen 8080;
    server_name myapp;

    root /var/www/myapp;
    try_files $uri @uwsgi;
    location @uwsgi {
        include uwsgi_params;
        uwsgi_pass unix:/tmp/myapp.sock;
    }
}

有人知道我这里做错了什么吗?为什么它无法运行?欢迎提供所有提示!

答案1

对我来说,解决方法很简单:

sudo apt-get install nginx-full

答案2

安装的 nginx 版本不支持 UWSGI。很容易找到一个支持 UWSGI 的版本:

% apt-cache search nginx uwsgi
nginx-core - nginx web/proxy server (core version)
nginx-extras - nginx web/proxy server (extended version)
nginx-full - nginx web/proxy server (standard version)

这意味着所有这些包的包描述中都包含 uwsgi,这通常是积极的意义。您可以通过查看描述来验证这一点,例如apt-cache show packagename

相关内容