Déploiement du projet Django avec Gunicorn et nginx
je suis nouveau à django, je voudrais savoir comment configurer mon projet django avec nginx et gunicorn. J'ai lu ce guide: http://michal.karzynski.pl/blog/2013/06/09/django-nginx-gunicorn-virtualenv-supervisor / mais il ne fonctionne pas pour mon projet. Je pense que c'est dû à la structure particulière de mon projet, c'est:
├──icecream
│ ├── settings
│ | ├── __init.py
│ | ├── base.py
│ | ├── local.py
│ | ├── production.py
│ ├── __init__.py
│ ├── urls.py
│ ├── wsgi.py
├── manage.py
j'ai eu cette mise en page de: https://github.com/twoscoops/django-twoscoops-project . Quelqu'un peut-il m'aider, s'il vous plaît? merci
3 réponses
je vais juste résumer les étapes pour déployer une application django avec nginx & gunicorn ici:
1. Installez nginx et ajoutez ceci à /etc/nginx/sites-enabled/default
server {
server_name 127.0.0.1 yourhost@example.com;
access_log /var/log/nginx/domain-access.log;
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 10;
proxy_read_timeout 10;
# This line is important as it tells nginx to channel all requests to port 8000.
# We will later run our wsgi application on this port using gunicorn.
proxy_pass http://127.0.0.1:8000/;
}
}
2. Installer gunicorn
$ pip install gunicorn
3. Démarrer votre projet django en utilisant gunicorn et le wsgi.py dossier
$ cd </path/to/djangoproject_subdirectory_with_wsgi.py>
$ gunicorn wsgi -b 127.0.0.1:8000 --pid /tmp/gunicorn.pid --daemon
# --daemon parameter tells gunicorn to run in the background
# So that gunicorn continues to run even if you close your ssh session
# (You cannot remain ssh-ed into your server all the time right!)
s'il vous Plaît ne pas utiliser "wsgi.py"; vous avez juste à utiliser wsgi sans le ".py" extension lors de l'appel gunicorn. Cela démarrera votre application wsgi en arrière-plan.
4. Visite "yourhost@example.com" dans votre navigateur
maintenant votre application doit être opérationnelle sur votre instance. Visite:
et voir si votre application est en cours d'exécution. N'oubliez pas de remplacez yourhost@example.com ci-dessus et dans les nginx fichier de configuration avant.
5. (Facultatif) Notes Complémentaires
-
à L'Étape 1, en cas de confusion; supprimer toutes les lignes existantes du fichier
/etc/nginx/sites-enabled/default
et mettre le code ci-dessus à l'intérieur. (Ou supprimer et créer un nouveau fichier vierge et ajouter le code) -
si vous utilisez virtualenv et que vous avez fait un
pip install gunicorn
à l'intérieur du virtualenv à L'Étape 2, puis lancez la commande Step 3 avec respectivement virtualenv activé. -
le pid du procédé gunicorn est stocké dans /tmp/gunicorn.pid; incase vous voulez tuer le processus gunicorn existant et le redémarrer.
-
supervisord
pourrait être utilisé en conjonction qui aide à redémarrer le démon gunicorn automatiquement au cas où il meurt pour une raison quelconque. Ceci est utile dans les environnements de production.
renvoyer ce lien peut vous aider. Il contient un processus étape par étape:
http://michal.karzynski.pl/blog/2013/06/09/django-nginx-gunicorn-virtualenv-supervisor /
veuillez utiliser ce lien pour un tutoriel simple. ce qui vous aide à déployer facilement et vous pouvez trouver comment cartographier avec Domaine aussi. LINK HERE