[PYTHON] Bereitstellen von Django (Ubuntu 14.04 LTS + Nginx + uWSGI + Supervisor)

Überblick

Ich hatte große Probleme, Django mit der Kombination von Titeln bereitzustellen, also machte ich mir eine Notiz für das nächste Mal. Ich werde den Ort verlassen, an dem ich süchtig war.

Die Kombination ist wie folgt

Django

Machen Sie es bis zu einem gewissen Grad und führen Sie den folgenden Befehl aus, um zu bestätigen, dass die Anwendung über den Browser funktioniert. Wenn dies nicht möglich ist, ist es sinnlos, Folgendes zu tun.

$ python manage.py runserver 0.0.0.0:8000

uWSGI-Einstellungen

uWSGI wurde mit apt installiert, hat aber nicht funktioniert. Ich war alleine 2 Tage lang süchtig danach.

Wenn uwsgi mit sudo ausgeführt wird, erscheint der folgende Fehler und es funktioniert nicht gut.

$ sudo uwsgi ***

Wenn ich es mit einem Browser überprüfe, zeigt das Protokoll, dass keine Python-Anwendung gefunden wurde.

--- 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)

Wenn Sie googeln, finden Sie diese Informationen ... http://www.yodiaditya.com/no-python-application-found-check-your-startup-logs-for-errors/

Deinstallieren Sie uWSGI (dieses Verfahren ist nicht erforderlich).

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

uWSGI-Installation

Installieren Sie uWSGI über pip. (Ich habe vergessen, sudo hinzuzufügen)

pip install uwsgi

Bestätigen Sie, bevor Sie eine INI-Datei erstellen (http). Greifen Sie mit einem Browser auf http: // ****: 8889 / admin zu.

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

Ich habe die Seite gesehen.

Nginx-Einstellungen

Es wurde wie folgt eingestellt. Vorerst an 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;
    }
}

Überprüfen Sie den Vorgang im Browser, nachdem Sie uWSGI gestartet haben

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

Überprüfen Sie mit einem Browser (http: // ****: 8877 / admin)

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

Gibt es noch eine Socket-Datei, wenn uWSGI über apt eingefügt wird? Ich habe einen Berechtigungsfehler erhalten. Löschen Sie die Socket-Datei mit rm.

sudo rm /tmp/<projectname>.sock

Ich habe uwsgi erneut gestartet und es erneut mit einem Browser überprüft, um es zu sehen.

uWSGI automatische Starteinstellung (Supervisor)

Dies wird von apt eingegeben.

sudo apt-get install supervisor

Datei einstellen (Ich weiß nicht, ob es passt, aber es funktioniert vorerst ...)

#  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

Statusprüfung

sudo supervisorctl status

Überprüfen Sie im Browser

http://*****:8889/adminとかで開けばOK! Starten Sie den Server neu und prüfen Sie, ob Sie erneut darauf zugreifen können und es in Ordnung ist!

Zukünftige Aufgaben

Recommended Posts

Bereitstellen von Django (Ubuntu 14.04 LTS + Nginx + uWSGI + Supervisor)
Stellen Sie die Django-Anwendung auf EC2 mit Nginx + Gunicorn + Supervisor bereit
Aufbau des Python-Ausführungsservers (Python + uWSGI + Django + Nginx)
Django Heroku Deploy 1
Erstellen Sie mit Docker eine Umgebung aus Nginx + uWSGI + Python (Django)
Django Heroku Deploy 2
Full-Scale-Server mit Nginx + uWSGI + Flask + Ubuntu (Installation)
Full-Scale-Server mit Nginx + uWSGI + Flask + Ubuntu (Implementierung)
Erstellen Sie eine Django-Umgebung mit Docker-Compose (MariaDB + Nginx + uWSGI).
Docker installieren (Ubuntu 18.04 LTS)
Singularity installieren (Ubuntu 18.04 LTS)
MongoDB-Installation (Ubuntu 18 LTS)
Bereitstellen von Django + Reagieren Sie von Grund auf auf GKE (1) Backend-Entwicklung - Nginx + Django