使用此部署教程,我正尝试使用 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
。