[PYTHON] Déploiement de Django (Ubuntu 14.04 LTS + Nginx + uWSGI + Supervisor)

Aperçu

J'ai eu beaucoup de mal à déployer Django avec la combinaison de titres, donc j'ai fait une note pour la prochaine fois. Je vais quitter l'endroit auquel j'étais accro.

La combinaison est la suivante

Django

Faites-le dans une certaine mesure et exécutez la commande suivante pour confirmer que l'application fonctionne à partir du navigateur. Si cela n'est pas possible, il est inutile de faire ce qui suit.

$ python manage.py runserver 0.0.0.0:8000

Paramètres uWSGI

uWSGI a été installé avec apt, mais cela n'a pas fonctionné. J'étais accro à cela seul pendant 2 jours.

Lorsque uwsgi est exécuté avec sudo attaché, l'erreur suivante apparaît et cela ne fonctionne pas bien.

$ sudo uwsgi ***

Lorsque je le vérifie avec un navigateur, le journal ne montre aucune application Python trouvée.

--- no python application found, check your startup logs for errors ---
[pid: 10523|app: -1|req: -1/1] 121.101.66.160 () {40 vars in 785 bytes} [Sun Feb 19 14:12:06 2017] GET / => generated 21 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 83 bytes (0 switches on core 0)

Si vous google, vous trouverez ces informations ... http://www.yodiaditya.com/no-python-application-found-check-your-startup-logs-for-errors/

Désinstaller uWSGI (cette procédure n'est pas nécessaire)

sudo apt-get remove uwsgi*
sudo apt-get purge uwsgi*

Installation de uWSGI

Installez uWSGI via pip. (J'ai oublié d'ajouter sudo)

pip install uwsgi

Confirmez avant de créer un fichier ini (http) Accédez à http: // ****: 8889 / admin avec un navigateur.

$ uwsgi --http :8888 --file /home/<user>/<pass>/<to>/<projectname>/<projectname>/wsgi.py

J'ai vu le site.

Paramètres Nginx

Il a été défini comme suit. Pour le moment, au port 8878.

# sudo vi /etc/nginx/conf.d/uwsgi.conf

upstream django {
    server unix:///tmp/<projectname>.sock;
}

server {
    listen 8887;
    access_log /var/log/nginx/<projectname>_access.log;
    error_log /var/log/nginx/<projectname>_error.log;

    location /static {
        alias /home/<user>/<pass>/<to>/<projectname>/static/;
    }

    location / {
         include uwsgi_params;
         uwsgi_pass django;
    }
}

Vérifiez le fonctionnement du navigateur après le démarrage de uWSGI

$ uwsgi --socket /tmp/<projectname>.sock --chmod-socket=666 --file /home/<user>/<pass>/<to>/<projectname>/<projectname>/wsgi.py

Vérifiez avec un navigateur (http: // ****: 8877 / admin)

error removing unix socket, unlink(): Operation not permitted [core/socket.c line 198]

Y a-t-il un fichier socket lorsque uWSGI est inséré via apt? J'ai une erreur d'autorisation. Supprimez le fichier socket avec rm.

sudo rm /tmp/<projectname>.sock

J'ai redémarré uwsgi et l'ai vérifié à nouveau avec un navigateur pour le voir.

Réglage du démarrage automatique uWSGI (Superviseur)

Ceci est entré depuis apt.

sudo apt-get install supervisor

Fichier de paramétrage (je ne sais pas s'il correspond, mais ça marche pour le moment ...)

#  sudo vi /etc/supervisor/conf.d/uwsgi.conf
[program:uwsgi]
directory = /home/<user>/<pass>/<to>/<projectname>
command = /home/<user>/.pyenv/shims/uwsgi --ini /etc/uwsgi/apps-enabled/<projectname>.ini
stopasgroup = true
numprocs = 1
autostart = true
autorestart = true
user=root
redirect_stderr = true
stdout_logfile = /var/log/supervisor/uwsgi.log

Vérification de l'état

sudo supervisorctl status

Vérifier depuis le navigateur

http://*****:8889/adminとかで開けばOK! Redémarrez le serveur et vérifiez si vous pouvez y accéder à nouveau et c'est OK!

Tâches futures

--Je veux pouvoir faire fonctionner plusieurs applications Django dans un sous-répertoire (http: // domaine / sous-répertoire /: 80).

Recommended Posts

Déploiement de Django (Ubuntu 14.04 LTS + Nginx + uWSGI + Supervisor)
Déployer l'application Django sur EC2 avec Nginx + Gunicorn + Supervisor
Construction du serveur d'exécution Python (Python + uWSGI + Django + Nginx)
Django Heroku Deploy 1
Créer un environnement de Nginx + uWSGI + Python (Django) avec docker
Django Heroku Deploy 2
Serveur à grande échelle réalisé avec Nginx + uWSGI + Flask + Ubuntu (installation)
Serveur à grande échelle réalisé avec Nginx + uWSGI + Flask + Ubuntu (implémentation)
Créer un environnement django avec docker-compose (MariaDB + Nginx + uWSGI)
Installer Docker (Ubuntu 18.04 LTS)
Installation de Singularity (Ubuntu 18.04 LTS)
Installation de MongoDB (Ubuntu 18 LTS)
Déployez Django + React à partir de zéro vers GKE (1) Développement backend - Nginx + Django