Nginx: неизвестная директива "uwsgi_param" в /etc/nginx/uwsgi_params:1
Используя это руководство по развертыванию, я пытаюсь запустить и запустить сервер Ubuntu 12.04 с Flask, uWSGI и Nginx. Теперь у меня проблемы с запуском 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;
}
}
Кто-нибудь знает, что я здесь делаю не так? Почему это не работает? Все советы приветствуются!
2 ответа
Исправление для меня было так просто, как:
sudo apt-get install nginx-full
Установленная версия nginx не поддерживает 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
,