Hosting Django mit Nginx und Gunicorn unter Linux
- 3877
- 1040
- Ilja Köpernick
Einführung
Das Hosting von Django -Webanwendungen ist ziemlich einfach, kann jedoch komplexer werden als eine Standard -PHP -Anwendung. Es gibt einige Möglichkeiten, um die Django -Oberfläche mit einem Webserver zu erstellen. Gunicorn ist leicht einer der einfachsten.
Gunicorn (kurz für Green Unicorn) wirkt wie auf dem Vermittlungsserver zwischen Ihrem Webserver, in diesem Fall Nginx und Django selbst. Es kümmert sich um die Anwendung selbst, während Nginx den statischen Inhalt aufnimmt.
Gunicorn
Installation
Das Installieren von Gunicorn ist mit PIP super einfach. Wenn Sie Ihr Django -Projekt bereits mit Virtualenv eingerichtet haben, haben Sie PIP und sollten mit der Funktionsweise von Funktionen vertraut sein. Installieren Sie also Gunicorn in Ihrem Virtualenv.
$ pip Installieren Sie Gunicorn
Aufbau
Eines der Dinge, die Gunicorn zu einer ansprechenden Wahl machen, ist die Einfachheit seiner Konfiguration. Der beste Weg, um die Konfiguration zu bewältigen, besteht darin, a zu erstellen Gunicorn
Ordner im Stammverzeichnis Ihres Django -Projekts. Erstellen Sie in diesem Ordner eine Konfigurationsdatei.
Für diesen Leitfaden wird es aufgerufen Gunicorn-Conf.py
. Erstellen Sie in dieser Datei etwas Ähnliches wie die folgende Konfiguration.
multiprocessing bind = 'unix: //// tmp/Gunicorn1 importieren.Sock 'Workers = Multiprocessing.cpu_count () * 2 + 1 reload = true Daemon = true
Bei der obigen Konfiguration erstellt Gunicorn einen Unix -Socket bei /TMP/Gunicorn1.Socke
. Es wird auch eine Reihe von Arbeitsprozessen aufdrehen, die der doppelten Anzahl der CPU -Kerne sowie einem entsprechen. Es wird auch automatisch neu laden und als Daemonisierter Prozess ausgeführt.
Betrieb
Der Befehl zum Ausführen von Gunicorn ist etwas lang, enthält jedoch zusätzliche Konfigurationsoptionen, die darin angegeben sind. Der wichtigste Teil ist, Gunicorn auf die Ihres Projekts zu richten .WSGI
Datei.
Gunicorn -c Gunicorn/Gunicorn -Conf.py -d -ERROR -LOGFILE GUNICORN/FEHLER.Loggen Sie Ihr Programm an.WSGI
Der obige Befehl sollte aus der Wurzel Ihres Projekts ausgeführt werden. Es fordert Gunicorn an, die Konfiguration zu verwenden, die Sie mit dem erstellt haben -C
Flagge. -D
Gibt erneut an, dass es daemonisiert sein sollte. Der letzte Teil gibt den Ort des Fehlers von GuniCorn Long in der an Gunicorn
Ordner, den Sie erstellt haben. Der Befehl endet, indem er Gunicorn über den Ort Ihrer sagt .WSGI
Datei.
Nginx
Jetzt, da Gunicorn konfiguriert und ausgeführt wird, können Sie Nginx einrichten, um eine Verbindung damit zu haben und Ihre statischen Dateien zu servieren. In dieser Anleitung wird davon ausgegangen, dass Sie Nginx bereits konfiguriert haben und separate verwenden Server
Blöcke für die durch sie gehosteten Websites. Es wird auch einige SSL -Informationen enthalten.
Wenn Sie lernen möchten, wie Sie kostenlose SSL -Zertifikate für Ihre Website erhalten, schauen Sie sich unseren LetSencrypt -Leitfaden an.
# Richten Sie die Verbindung zu Gunicorn vor, stromaufwärts Your Project-Gunicorn Server Unix:/TMP/Gunicorn1.SOCK fail_timeout = 0; # Umleiten Sie den unverschlüsselten Datenverkehr auf den verschlüsselten Site -Server Hören 80; server_name yourwebsite.com; Gibt 301 https: // yourwebsite zurück.com $ request_uri; # Der Hauptserver -Blockserver # Legen Sie den Port auf und geben Sie die Domäne an, um das Hören zu hören. 443 Standard SSL; client_max_body_size 4g; server_name yourwebsite.com; # Angeben Sie Protokollorte Access_log/var/log/nginx/yourwebsite.Access_log main; ERROR_LOG/VAR/LOG/NGINX/YORWEBSITE.INAGE_LOG INFO; # Punkt Nginx auf Ihre SSL -Zertifikate SSL on; SSL_Certificate/etc/letSencrypt/live/yourwebsite.com/fullchain.Pem; ssl_certificate_key/etc/letsencrypt/live/yourWebsite.com/privkey.Pem; # Setzen Sie Ihr Root -Verzeichnis root/var/www/yourvirtualenv/yourProject; # Punkt nginx an den statischen Dateiensposition / static / # # autoIndex die Dateien, um sie durch Browsable zu machen, wenn Sie autoIndex auf möchten; # Der Standort Ihrer Dateien alias/var/www/yourvirtualenv/yourProject/static/; # Einrichten von Caching für Ihre statischen Dateien läuft 1m ab. Access_log aus; add_header cache-kontroll "public"; proxy_ignore_Headers "set-Cookie"; # Point nginx an Ihren hochgeladenen Dateien Speicherort / Media / autoIndex Wenn Sie AutoIndex auf; # Der Standort Ihrer hochgeladenen Dateien alias/var/www/yourvirtualenv/yourProject/media/; # Einrichten von Schmerzen für Ihre hochgeladenen Dateien läuft 1m ab. Access_log aus; add_header cache-kontroll "public"; proxy_ignore_Headers "set-Cookie"; location / # probieren Sie zuerst Ihre statischen Dateien aus und leiten Sie dann zu Gunicorn try_files $ uri @proxy_to_app; # Geben Anforderungen an den Gunicorn-Standort @proxy_to_app proxy_set_header x-forwarded-for $ proxy_add_x_forwarded_for; proxy_set_header host $ http_host; Proxy_Redirect Off; proxy_pass http: // njc-gunicorn; # Caching für HTML-, XML- und JSON -Standort ~* \.(HTML?| xml | json) $ läuft 1H; # Caching für alle anderen statischen Assets Ort ~* \.(JPG | JPEG | PNG | GIF | ICO | CSS | JS | TTF | WOFF2) $ läuft 1m aus; Access_log aus; add_header cache-kontroll "public"; proxy_ignore_Headers "set-Cookie";
Okay, das ist ein bisschen viel und es kann viel mehr geben. Die wichtigen Punkte sind die zu beachten stromaufwärts
Blockieren Sie das auf Gunicorn und die Standort
Blöcke, die den Verkehr an Gunicorn übergeben. Der größte Teil des Restes ist ziemlich optional, aber Sie sollten es in irgendeiner Form tun. Die Kommentare in der Konfiguration sollten Ihnen bei den Einzelheiten helfen.
Sobald diese Datei gespeichert ist, können Sie Nginx neu starten, damit die Änderungen wirksam werden können.
# SystemCTL Neustart Nginx
Sobald Nginx wieder online ist, sollte Ihre Website über Ihre Domain zugänglich sein.
Gedanken schließen
Es gibt noch viel mehr, die mit Nginx geschehen können, wenn Sie tief graben möchten. Die bereitgestellten Konfigurationen sind jedoch ein guter Ausgangspunkt und etwas, das Sie tatsächlich verwenden können. Wenn Sie es gewohnt sind, Apache und aufgeblähte PHP -Anwendungen zu erhalten.
Verwandte Linux -Tutorials:
- Dinge zu installieren auf Ubuntu 20.04
- So richten Sie eine statische IP -Adresse auf Manjaro Linux ein
- Linux Apache, die PHP -Dateien nicht ausführen: Lösung
- Eine Einführung in Linux -Automatisierung, Tools und Techniken
- Ubuntu 20.04: WordPress mit Nginx -Installation
- Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
- So installieren Sie PHP unter Ubuntu Linux
- Mint 20: Besser als Ubuntu und Microsoft Windows?
- OpenLiteSpeed WordPress Installation
- So erstellen Sie einen Docker -basierten Lampenstapel mit Docker auf…
- « So installieren Sie das Java SE -Entwicklungskit unter Debian Linux
- Lernen von Linux -Befehlen netstat »