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:
|
<<: Vue implementiert einen visuellen Drag-Page-Editor
>>: Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.11 Zip
1. Installieren Sie mysql5.6 Docker führt MySQL a...
Inhaltsverzeichnis 1. Dateien mit Skript-Tags imp...
Derzeit werden fast alle großen Websites und Anwe...
Bei vielen Benutzern ist dieser Fehler beim Start...
Vorwort: In diesem Artikel wird hauptsächlich die...
Inhaltsverzeichnis Kein Schalter, keine komplexen...
1. Hilfe-Befehl 1. Aktuelle Docker-Version anzeig...
Im Web gibt es zwei gängige Ladesymbole: eines is...
Vorwort Die Benutzeroberfläche von Deepin sieht w...
1. Überlauf Überlauf ist Überlauf (Container). We...
Um eine große Anzahl gleichzeitiger Besuche bewäl...
Inhaltsverzeichnis 1. Ressourcendateien 2. Instal...
Verwenden Sie OSS, um Bilder oder Anhänge in ein ...
Es gibt viele Versionen der Java-Sprache. Zusätzl...
1. Verwenden Sie Frameset, Frame und Iframe, um m...