En utilisant ce tutoriel de déploiement , j'essaie de mettre en marche un serveur Ubuntu 12.04 avec Flask, uWSGI et Nginx. J'ai maintenant du mal à faire fonctionner Nginx. Lorsque j'essaie de (re) démarrer nginx, il indique simplement ...fail!
, et lorsque je lance un test (avec Sudo nginx -t
), il indique:
nginx: [emerg] unknown directive "uwsgi_param" in /etc/nginx/uwsgi_params:1
nginx: configuration file /etc/nginx/nginx.conf test failed
Je n'ai rien changé dans ce fichier, donc son contenu est celui par défaut:
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;
La définition de mon serveur dans /etc/nginx/sites-available/www
ressemble à ceci:
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;
}
}
Est-ce que quelqu'un sait ce que je fais mal ici? Pourquoi ça ne marche pas? Tous les conseils sont les bienvenus!
La solution pour moi était aussi simple que:
Sudo apt-get install nginx-full
La version de nginx installée ne prend pas en charge UWSGI. C'est assez facile d'en trouver un qui fait:
% 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)
Cela signifie que tous ces paquets contiennent uwsgi dans leurs descriptions, ce qui est généralement positif. Vous pouvez vérifier cela simplement en consultant la description, par exemple. apt-cache show packagename
.