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
Detaillierte Erläuterung des Konfigurationsprozes...
Ich lerne derzeit etwas über MySQL-Optimierung. D...
Handlungsüberblick Im vorherigen Artikel haben wi...
Problembeschreibung Es gibt einen Abfragetyp name...
Installationsmethode für komprimierte MySQL 8.0-P...
Inhaltsverzeichnis 1. Schlüsselwörter 2. Dekonstr...
<br />Test zu Webdesign und -produktion, Tei...
Alle aufeinanderfolgenden Leerzeichen oder Leerze...
Kürzlich habe ich auf der B-Station einen Sperrfe...
Wenn Sie sich remote bei MySQL anmelden, gelten f...
Inhaltsverzeichnis 1. Funktionssignatur 2. Funkti...
Inhaltsverzeichnis Vorwort Erstellen einer Kompon...
Vorwort Wir alle wissen, dass der Import und Expo...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis 1. Der Ursprung der Gabel 2. F...