Используя это руководство по развертыванию , я пытаюсь настроить и запустить сервер 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;
}
}
Кто-нибудь знает, что я здесь делаю неправильно? Почему это не работает? Все советы приветствуются!
Фиксация для меня была так же проста как:
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
.