Detaillierte Schritte zum Starten des Django-Projekts mit nginx+uwsgi

Detaillierte Schritte zum Starten des Django-Projekts mit nginx+uwsgi

nginx+uwsgi+django ist unsere häufig verwendete Bereitstellungsmethode für Django. Als Front-End-Server ist nginx für den Empfang aller Client-Anfragen verantwortlich. Die angeforderten statischen Dateien werden vom nginx-Server selbst verarbeitet, da dieser gut mit statischen Dateien umgehen kann, eine optimierte Leistung aufweist und eine hohe Parallelität unterstützt. Der uWSGI-Server ist ein Support-Server, der zum Bedienen von nginx verwendet wird. nginx übergibt die angeforderten dynamischen Dateien zur Verarbeitung an uWSGI. uWSGI implementiert die Protokolle uwsgi, wsgi und http. Das uwsgi-Protokoll ist ein benutzerdefiniertes Protokoll von uWSGI, das die Schnittstelle zwischen dem Framework (Django) und dem Server definiert.

1. Installieren Sie die Projektumgebung

Systemumgebung: Ubuntu 16.04

Python-Umgebung: python3.5.2

Django-Version: django1.11.7

Nginx-Umgebung: nginx_1.10.3

Virtuelle Umgebung: virtualenv15.1.0

uwsgi-Version: uwsgi2.0.17.1

Installieren und öffnen Sie die virtuelle Projektumgebung:

sudo apt-get installiere virtualenv
virtualenv -p python3 env_mein_projekt 
Quelle env_my_project/bin/activate
pip install -r Anforderungen.txt

2. Projektkonfiguration und Betriebstest

Ändern Sie die Projektkonfigurationsdatei:

cp mein_projekt/settings_local.py.beispiel mein_projekt/settings_local.py

Ändern Sie die es-Konfigurationsdatei:

cp rs_es/es_settings.py.beispiel rs_es/es_settings.py

wsgi.py:

Betriebssystem importieren
von django.core.wsgi importiere get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mein_Projekt.settings_local")
Anwendung = get_wsgi_application()

Projektlauftest:

python manage.py collectstatic # Statische Dateien sammeln python manage.py makemigrations
python manage.py migrieren
python manage.py runserver 0.0.0.0:8001

3. NGINX- und UWSGI-bezogene Konfiguration

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/mein_projekt
sudo ln -s /etc/nginx/sites-available/mein_projekt /etc/nginx/sites-enabled/
sudo vim /etc/nginx/sites-enabled/mein_projekt

Nginx-Konfiguration:

Upstream mein_Projekt{
 Server unix:///var/run/my_project.sock;
}

Server {
 listen 8001; //Der Dienst mit der Service-Portnummer wird über die Kommunikation zwischen Nginx und Uwsgi gestartet. Servername 192.168.xx.xx; //Die IP des Nginx-Proxys 
 Zeichensatz UTF-8;

 # maximale Upload-Größe
 Maximale Client-Körpergröße: 10 M;

 # Senden Sie alle nicht-medialen Anfragen an den Django-Server.
 Standort / {
  uwsgi_pass mein_Projekt;
  /etc/nginx/uwsgi_params einschließen;
 }

 Standort /static/ {
  root /home/ubuntu/mein_projekt;
 }
}

Uwsgi-Konfiguration:

sudo mkdir /var/log/uwsgi
sudo chmod -R 777 /var/log/uwsgi

uwsgi.ini:
[Benutzer]
chdir=/home/ubuntu/mein_projekt
home=/home/ubuntu/mein_projekt/env_mein_projekt
Modul=mein_Projekt.wsgi:Anwendung

socket=/var/run/mein_projekt.sock
chmod-Socket = 666

Master = Wahr
Prozesse = 5
Maximale Anfragen = 5000

# Umgebung beim Beenden löschen
Vakuum=Wahr

pidfile=/var/run/mein_projekt.pid
daemonize=/var/log/uwsgi/mein_projekt.log

# git pull startet den Dienst automatisch neu touch-reload=.git/index

4. Konfigurieren Sie die Überwachung im Emperor-Modus und den automatischen Systemstart von uwsgi

Konfigurieren des Emperor-Modus-Abhörens

sudo mkdir /etc/uwsgi
sudo mkdir /etc/uwsgi/vassals
sudo ln -s /home/ubuntu/mein_projekt/uwsgi.ini /etc/uwsgi/vassals/

Das System startet automatisch uwsgi

sudo vim /etc/rc.local
/usr/local/bin/uwsgi --emperor /etc/uwsgi/vassals

5. Starten Sie den Django-Dienst über uwsgi

Starten Sie uwsgi

uwsgi --ini uwsgi.ini

Starten Sie nginx neu

sudo service nginx neu starten

Starten Sie den Django-Dienst

sudo uwsgi --reload /var/run/mein_projekt.pid

An diesem Punkt können Sie über den IP- und Port-Proxy von ngnix im Browser auf den Dienst zugreifen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Detailliertes Tutorial zum Erstellen von Django+Nginx+Uwsgi unter Ubuntu
  • Detaillierte Erklärung der Best Practices für Django + uwsgi + Nginx online
  • Detaillierte Bereitstellung von Django uwsgi Nginx in der Produktionsumgebung
  • So stellen Sie den Django-Dienst nginx+uwsgi auf Centos bereit
  • Detaillierte Erläuterung der Bereitstellung von Django + Uwsgi + Nginx in der Produktionsumgebung
  • Detaillierte Erläuterung der Bereitstellung der Produktionsumgebung von Django + Uwsgi + Nginx
  • Lösen Sie alle Probleme bei der Bereitstellung von Django mit nginx+uwsgi (Zusammenfassung)
  • So implementieren Sie die Bereitstellung einer Produktionsumgebung mit Django+Uwsgi+Nginx

<<:  Vue implementiert einen visuellen Drag-Page-Editor

>>:  Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.11 Zip

Artikel empfehlen

So installieren Sie mysql5.6 in Docker unter Ubuntu

1. Installieren Sie mysql5.6 Docker führt MySQL a...

Javascript verwendet das Integritätsattribut zur Sicherheitsüberprüfung

Inhaltsverzeichnis 1. Dateien mit Skript-Tags imp...

Zusammenfassung der MySQL-Abfragesyntax

Vorwort: In diesem Artikel wird hauptsächlich die...

Sie müssen wahrscheinlich keine Switch-Anweisungen in JavaScript verwenden

Inhaltsverzeichnis Kein Schalter, keine komplexen...

Detaillierte Erklärung gängiger Docker-Befehle

1. Hilfe-Befehl 1. Aktuelle Docker-Version anzeig...

Verwenden von CSS zum Implementieren einer Ladeanimation des Android-Systems

Im Web gibt es zwei gängige Ladesymbole: eines is...

Ausführliches Tutorial zur Installation von Deepin in VMware15 (Bild und Text)

Vorwort Die Benutzeroberfläche von Deepin sieht w...

Erläuterung der CSS3-Überlaufeigenschaft

1. Überlauf Überlauf ist Überlauf (Container). We...

Ubuntu-Installation Matlab2020b, ausführliches Tutorial und Ressourcen

Inhaltsverzeichnis 1. Ressourcendateien 2. Instal...

Vue verwendet OSS zum Hochladen von Bildern oder Anhängen

Verwenden Sie OSS, um Bilder oder Anhänge in ein ...

Wichtige Hinweise zu PHP-HTMLhtml-Wissenspunkten (unbedingt lesen)

1. Verwenden Sie Frameset, Frame und Iframe, um m...