Während des Studiums verstand ich die Einstellungen von NGINX und Gunicron nicht, nachdem ich Django auf einem Remote-Host bereitgestellt hatte, und machte mir daher eine Notiz.
Stellen Sie die mit Django erstellte Anwendung in der Cloud bereit, die leichte Verarbeitung wie das Anzeigen statischer Dateien wird vom Webserver (NGINX) verarbeitet, die schwere Verarbeitung wie die dynamische Verarbeitung von Django vom AP-Server (gunicron). Ich möchte es tun.
Zusammenfassend das folgende Bild
Um dies zu erreichen, müssen Sie Folgendes tun (vorausgesetzt, die Django-Anwendung ist bereits auf dem Server bereitgestellt).
Fügen Sie die von NGINX aufgerufene Einstellungsdatei der Website (in diesem Fall die Django-App) zu "/ etc / nginx / sites-available" hinzu. Dadurch kann NGINX die Site aufrufen.
/etc/nginx/sites-Datei zur verfügbaren hinzufügen
cd /etc/nginx/sites-available
sudo vi djangapp
NGINX ruft Django gemäß den in dieser "Djang-App" beschriebenen Einstellungen auf. Als nächstes werden die Informationen in der erstellten Einstellungsdatei beschrieben. Diesmal möchte NGINX die folgenden zwei Dinge tun.
Der Inhalt der Einstellungsdatei sieht folgendermaßen aus
etc/nginx/sites-available/djangapp
server {
#Port, über den Anfragen an die Website gestellt werden, die Sie einstellen
listen 80;
#Website IP oder Domain Name
server_name xx.xx.xx.xxx;
#Ein Zauber, um den Fehler zu vermeiden, dass das Fabicon nicht gefunden werden kann
location = /favicon.ico {access_log off; log_not_found off;}
###Im Folgenden wird die Entsprechung zwischen der Anforderungs-URL und dem Pfad unter NGINX definiert.
#Legen Sie den Pfad zur statischen Django-Datei fest
location /static/ {
root /home/ubuntu/djangapp;
}
#Legen Sie den Pfad fest, um das CSS der Administratorseite anzuzeigen
location /static/admin {
root /home/ubuntu/venv/lib/python3.6/site-packages/django/contrib/admin/static/admin;
}
#Legen Sie den Pfad zum Unix-Socket fest, um die Anforderung an die Webseite zu senden
location / {
# 「/etc/nginx/proxy_Die Proxy-Einstellungen werden unter "params" beschrieben.
include proxy_params;
# djangapp.Ich sende das Anforderungsergebnis an sock
proxy_pass http://unix:/home/ubuntu/djangapp/djangapp.sock;
}
}
Erstellen Sie einen symbolischen Link in "site-enabled", um anzuzeigen, dass "sites-available / djangapp", das zuvor erstellt wurde, "enabled" ist. Wenn Sie die Verbindung vorübergehend trennen möchten, löschen Sie einfach diesen symbolischen Link
Erstellen Sie einen symbolischen Link
sudo ln -s /etc/nginx/sites-available/djangapp /etc/nginx/sites-enaled
Sie haben jetzt einen symbolischen Link mit dem Namen sites-enabled / djangapp-> sites-available / djangapp erstellt. Vorerst bestätigt.
Symbolische Linkbestätigung
(venv) ubuntu@ip-172-31-45-165:/etc/nginx/sites-available$ ls -la /etc/nginx/sites-enabled/
total 8
drwxr-xr-x 2 root root 4096 Apr 29 13:26 .
drwxr-xr-x 8 root root 4096 Apr 29 13:27 ..
lrwxrwxrwx 1 root root 34 Apr 29 06:54 default -> /etc/nginx/sites-available/default
#Es ist eine symbolische Verbindung
lrwxrwxrwx 1 root root 36 Apr 29 13:26 djangapp -> /etc/nginx/sites-available/djangapp
Lassen Sie uns zunächst testen, ob NGINX ordnungsgemäß funktioniert
Nginx-Testlauf
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Stellen Sie sicher, dass es ohne Probleme funktioniert. Dann verschiedene Neustarts
Starten Sie NGINX neu
sudo systemctl restart nginx
Gunicorn neu starten
sudo systemctl restart gunicorn
Stellen Sie danach eine Verbindung zur URL her
Recommended Posts