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

11
demandé sur Betelgeuse 2013-11-23 18:00:43

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:

http://yourhost@example.com /

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.

30
répondu Pranjal Mittal 2016-02-12 08:43:37

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 /

1
répondu Vijesh Venugopal 2015-02-11 11:35:05

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

0
répondu Abin Abraham 2015-03-04 09:30:29