Tutorial zum Bereitstellen von nginx+uwsgi in Django-Projekten unter Centos8

Tutorial zum Bereitstellen von nginx+uwsgi in Django-Projekten unter Centos8

1. Virtuelle Umgebung virtualenv installieren

1. Installieren Sie virtualenv

pip3 installiere virtuelle Umgebung

2. Erstellen Sie ein Verzeichnis und übertragen Sie die Projektdateien

mkdir Mein
CD Meine

3. Erstellen Sie eine unabhängige Betriebsumgebung-Benennung

virtualenv --no-site-packages --python=python3 venv1 #Erstellen Sie eine unabhängige Umgebung und geben Sie den Interpreter als python3 an

4. Betreten Sie die virtuelle Umgebung

Quelle venv1/bin/activate #Geben Sie die virtuelle Umgebung ein (venv1)

5. Installieren Sie Drittanbieterbibliotheken in der virtuellen Umgebung und importieren Sie die erforderliche Umgebung (Exportbefehl: pip3 freeze > packages.txt)

pip3 install django == 2.11 #Zu diesem Zeitpunkt werden alle pip3-Pakete in der für Myproject erstellten venv1-Umgebung installiert
pip3 install -r pakete.txt

6. Verlassen Sie die venv1-Umgebung

deaktivieren

7. Wie erstellt virtualenv eine „unabhängige“ Python-Laufzeitumgebung? Das Prinzip ist sehr einfach: Kopieren Sie einfach das System-Python in die Virtualenv-Umgebung.
Wenn Sie die source venv/bin/activate verwenden, um eine Virtualenv-Umgebung aufzurufen, ändert virtualenv die relevanten Umgebungsvariablen, sodass die Befehle python und pip beide auf die aktuelle Virtualenv-Umgebung verweisen.

2. Django-Konfiguration

1.einstellungen.py

DEBUG = False #debug in false geändert

ALLOWED_HOSTS = ['*'] # Ändern Sie die Zugriffsadresse in "*", um alle anzuzeigen STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR),"static")
 #Das von nginx aufgerufene Verzeichnis wird im vorherigen statischen Verzeichnis abgelegt. Sie können den absoluten Pfad STATIC_URL = '/static/' anpassen. 
STATICFILES_DIRS = [os.path.join(BASE_DIR,"static"),]

MEDIA_URL = "/archiv/"
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'Archiv') 
#Von Benutzern hochgeladene statische Dateien, wie etwa Avatare

Führen Sie nach Abschluss der Konfiguration python manage.py collectstatic aus, um statische Dateien in das Verzeichnis STATIC_ROOT zu laden.

2.urls.py

von django.urls importiere Pfad, re_path
aus django.conf Importeinstellungen
von django.views.static importiere serve
 
URL-Muster = [
   re_path(r'^archive/(?P<Pfad>.*)$', dienen, 
{'document_root': settings.MEDIA_ROOT}, name='archive'), #Pfad der vom Benutzer hochgeladenen Datei('favicon.ico', serve,{'path': 'img/favicon.ico','document_root':settings.STATIC_ROOT}),
 #Globales favicon.ico-Symbol]

3. Installieren und konfigurieren Sie uwsgi

1. Rufen Sie die virtuelle Umgebung venv1 auf und installieren Sie uwsgi (am besten außerhalb der virtuellen Umgebung installieren).

(venv1) [root@localhost ~]# pip3 installiere uwsgi

2. Konfigurieren Sie die Startdatei (Sie können sie in ein beliebiges Verzeichnis legen, ich habe sie in venv1 abgelegt).
uwsgi unterstützt mehrere Konfigurationsmethoden wie ini und xml. Dieser Artikel verwendet ini als Beispiel. Erstellen Sie eine neue uwsgi.ini im Verzeichnis /etc/ und fügen Sie die folgende Konfiguration hinzu:

 #Konfigurationsoptionen hinzufügen [uwsgi]
 #Konfigurieren Sie die Socket-Verbindung zu Nginx Socket = 127.0.0.1:8000
 #http=0.0.0.0:8000 #http-Verbindung #Konfigurieren Sie den Projektpfad, das Verzeichnis, in dem sich das Projekt befindet chdir = /opt/My/Myproject

 #Konfigurieren Sie den Dateipfad des wsgi-Schnittstellenmoduls, dh den Verzeichnisnamen, in dem sich die Datei wsgi.py befindet wsgi-file = Myproject/wsgi.py
 #Konfigurieren Sie die Anzahl der gestarteten Prozesse process=4
 #Konfigurieren Sie die Anzahl der Threads für jeden Prozess threads=2
 #Konfigurieren Sie den Masterprozess für die Startverwaltung master=True
 #Home des virtuellen Umgebungsverzeichnisses=/opt/My/venv1
 #Konfigurieren Sie die Prozessnummerndatei zum Speichern des Hauptprozesses (ich habe sie auskommentiert, da sie angeblich mit dem Supervisor-Protokoll in Konflikt steht).
 #pidfile=uwsgi.pid

 #Dump-Protokollierung konfigurieren (wie oben)
 #daemonize=uwsgi.log

3. Beginnen Sie mit der Angabe einer Konfigurationsdatei

uwsgi --ini /opt/My/venv1/uwsgi.ini

4. Installieren und konfigurieren Sie nginx

1. Installieren Sie nginx auf centos8 (direkte Yum-Installation)

yum install -y nginx

2. Konfigurieren Sie nginx.conf

 Benutzer nginx;
 worker_processes 2; #Anzahl der Prozesse error_log /var/log/nginx/error.log;
 pid /run/nginx.pid;

 # Dynamische Module laden. Siehe /usr/share/doc/nginx/README.dynamic.
 schließen Sie /usr/share/nginx/modules/*.conf ein;

 Ereignisse {
 Arbeiterverbindungen 1024;
 }

 http {
 log_format main '$remote_addr - $remote_user [$time_local] "$request" '
 '$status $body_bytes_sent "$http_referer" '
 '"$http_user_agent" "$http_x_forwarded_for"';

 Zugriffsprotokoll /var/log/nginx/access.log Haupt;

 sendfile an;
 tcp_nopush ein;
 tcp_nodelay ein;

 KeepAlive-Timeout 65;
 Typen_Hash_max_Größe 2048;

 /etc/nginx/mime.types einschließen;
 Standardtyp Anwendung/Oktett-Stream;

 # Laden Sie modulare Konfigurationsdateien aus dem Verzeichnis /etc/nginx/conf.d.
 # Siehe http://nginx.org/en/docs/ngx_core_module.html#include
 # für weitere Informationen.
 #include /etc/nginx/conf.d/*.conf;

 Server {
 listen 80;#Abhörport#listen [::]:80 Standardserver;
 server_name 192.168.3.119;# Domänenname oder IP
 #root /usr/share/nginx/html;

 # Konfigurationsdateien für den Standardserverblock laden.
 #include /etc/nginx/default.d/*.conf;
 Zeichensatz UTF-8;

 Standort /static {
 alias /opt/My/static; #Statische Dateiadresse (STATIC_ROOT)

 }

 Standort / {
 uwsgi_params einschließen;
 uwsgi_pass 0.0.0.0:8000; #Projekt-Portnummer uwsgi_param UWSGI_SCRIPT Myproject.wsgi; #Projekt wsgi.py-Verzeichnis uwsgi_param UWSGI_CHDIR /opt/My/Myproject; #Projektverzeichnis}

 }

 }

3. Starten Sie nginx

/usr/sbin/nginx

5. Supervisor installieren und konfigurieren

1. Supervisor installieren

pip3 install supervisor # Bisher war für die Installation eine Python2-Umgebung erforderlich. Jetzt können Sie es direkt mit pip3 installieren.

2. Generieren Sie über Befehle Konfigurationsdateien im Verzeichnis etc (können angepasst werden).

echo_supervisord_conf > /etc/supervisord.conf

3. Fügen Sie am Ende der Konfigurationsdatei den folgenden Code hinzu

[Programm: mein Name] #Taskname Befehl=/opt/my/venv1/bin/uwsgi --ini /opt/my/venv1/uwsgi.ini
 #Der ausgeführte Befehl führt uwsgi aus. uwsgi befindet sich in der virtuellen Umgebung [program:nginx] 
 command=/usr/sbin/nginx #Führen Sie nginx aus

4. Supervisor starten

 supervisord -c /etc/supervisord.conf #Supervisor starten
 supervisorctl -c /etc/supervisord.conf #Geben Sie die interaktive Supervisor-Schnittstelle ein

5. Supervisor-Befehl

 starte meinname #Start\
 stop meinname #Stop>> Sie können den Aufgabennamen oder all schreiben, um alle Neustarts anzuzeigen meinname #Restart/

Dies ist das Ende dieses Artikels über das Tutorial zum Bereitstellen von nginx+uwsgi in Django-Projekten unter Centos8. Weitere relevante Inhalte zum Bereitstellen von nginx+uwsgi in Django-Projekten finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der Idee, Nginx + Uwsgi + Django-Projekte auf dem Server bereitzustellen
  • Django-Projekt uwsgi+Nginx Nanny-Level-Bereitstellung Tutorial-Implementierung
  • Beispiel für die Bereitstellung eines Django-Projekts mit uwsgi+nginx
  • Django 8.5-Projektbereitstellung – Nginx

<<:  JavaScript MouseEvent-Fallstudie

>>:  Bei der Installation von mysql8.0.15 winx64 unter Win10 und der Verbindung zum Server sind Probleme aufgetreten

Artikel empfehlen

Installationsprozess des 64-Bit-Quellcodes von CentOs7 MySQL 5.6.40

1. Installieren Sie zuerst die Abhängigkeitspaket...

Fallstricke bei der neueren Version des IDEA2021 Tomcat10-Servlets

Da die Version, die ich beim Lernen verwendet hab...

So legen Sie eine Verzeichnis-Whitelist und eine IP-Whitelist in Nginx fest

1. Legen Sie eine Verzeichnis-Whitelist fest: Leg...

Grafisches Tutorial zur Installation und Konfiguration von mysql5.7.20 (Mac)

Grafisches Tutorial zur Installation und Konfigur...

MySQL 8.0 Upgrade-Erfahrung

Inhaltsverzeichnis Vorwort 1. Deinstallieren Sie ...

SQL-Implementierung von LeetCode (197. Steigende Temperatur)

[LeetCode] 197.Steigende Temperatur Schreiben Sie...

MySQL 8.0.19 Installations-Tutorial

Laden Sie das Installationspaket von der offiziel...

Detaillierte Schritte zum Erstellen eines Vue-Scaffolding-Projekts

Vue-Gerüst -> vue.cli Erstellen Sie schnell ei...

HTML-Tabellen-Markup-Tutorial (14): Tabellenkopf

<br />In der HTML-Sprache können Sie der Tab...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.25

Es gibt zwei Arten von MySQL-Installationsdateien...

js realisiert den Lupeneffekt von Produkten auf Einkaufswebsites

In diesem Artikel wird der spezifische Code von j...

So überprüfen Sie die Speichernutzung unter Linux

Bei der Behebung von Systemproblemen, Anwendungsv...