Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So konfigurieren Sie ein Python-Webprojekt mit Nginx und uWSGI

So konfigurieren Sie ein Python-Webprojekt mit Nginx und uWSGI

WBOY
WBOYnach vorne
2023-05-17 20:52:041684Durchsuche

Übliche Bereitstellungsmethoden für Python-basierte Webprojekte sind:

  •                                                                                    & 

  • wsgi: Verwenden Sie das mod_wsgi-Modul des http-Dienstes, um verschiedene Projekte auszuführen.

Aber es gibt auch uwsgi, das weder das wsgi-Protokoll noch das fcgi-Protokoll verwendet. Stattdessen erstellt es ein eigenes uwsgi-Protokoll, das laut Autor etwa zehnmal so schnell ist wie das fcgi-Protokoll. Die Hauptmerkmale von uwsgi sind wie folgt:

  •                 Ultraschnelle Leistung.

  • Geringe Speichernutzung (gemessen etwa die Hälfte von mod_wsgi von Apache2).

  • Multi-App-Verwaltung.

  • Detaillierte Protokollierungsfunktion (kann zur Analyse der App-Leistung und von Engpässen verwendet werden).

  • Hochgradig anpassbar (Speichergrößenbeschränkung, Neustart nach einer bestimmten Anzahl von Diensten usw.).

Umgebung Ubuntu 12.04 IP: 10.1.6.79

Nginx installieren

apt-get install nginx-full nginx-common

nginx-Konfiguration/etc/nginx/sites-enabled/example

server {
    listen     80;
    server_name   10.1.6.79;
    access_log   /var/log/nginx/example_access.log;
    error_log    /var/log/nginx/example_error.log;
    root      /var/www/example;
    location / {
      uwsgi_pass   127.0.0.1:9001;
      include     uwsgi_params;
      uwsgi_param   uwsgi_scheme $scheme;
      uwsgi_param   server_software  nginx/$nginx_version;
    }
}

Installieren. uwsgi

apt-get install uwsgi uwsgi-plugin-python

Wenn Sie alle uwsgi installieren möchten Mit dem Plug-in können Sie das Softwarepaket uwsgi-plugin-all installieren Die Konfigurationsdatei mit Ausnahme des XML-Formats kann auch im INI-Format geschrieben werden. Nach der Installation des Softwarepakets befinden sich einige Beispiele für Konfigurationsdateien im XML- und INI-Format in /usr/share/doc/. uwsgi/examples/conffile-Verzeichnis.

wsgi_configuration_module.py Skriptinhalt

<uwsgi>
  <plugin>python</plugin>
  <socket>127.0.0.1:9001</socket>
  <pythonpath>/var/www/example/app/</pythonpath>
  <app mountpoint="/">
    <script>wsgi_configuration_module</script>
  </app>
  <master/>
  <processes>4</processes>
  <reload-mercy>8</reload-mercy>
  <cpu-affinity>1</cpu-affinity>
  <max-requests>2000</max-requests>
  <limit-as>512</limit-as>
  <reload-on-as>256</reload-on-as>
  <reload-on-rss>192</reload-on-rss>
  <no-orphans/>
  <vacuum/>
</uwsgi>

Parameter zum Starten von uwsgi

#!/usr/bin/python
import os
import sys
sys.path.append(&#39;/var/www/example/app&#39;)
os.environ[&#39;python_egg_cache&#39;] = &#39;/var/www/example/.python-egg&#39;
def application(environ, start_response):
  status = &#39;200 ok&#39;
  output = &#39;hello world!&#39;
  response_headers = [(&#39;content-type&#39;, &#39;text/plain&#39;),
          (&#39;content-length&#39;, str(len(output)))]
  start_response(status, response_headers)
  return [output]

uwsgi: -m zum Starten des Master-Prozesses -p 4 zum Starten von 4 Prozessen

-s Die verwendete Port- oder Socket-Adresse

-d Verwendung Beachten Sie, dass Sie nach der Verwendung von -d die Protokolldateiadresse hinzufügen müssen, z. B. -d /var/log/uwsgi.log
-r 10000 Nach dem Start von 10.000 Prozessen wird es automatisch neu gestartet
-t 30 Legen Sie eine Zeitüberschreitung von 30 Sekunden fest. Nach der Zeitüberschreitung wird der Link automatisch aufgegeben.
-limit-as 32 Steuern Sie den Gesamtspeicher des Prozesses auf 32 m 4 Threads

uwsgi -x /etc/uwsgi/apps-enabled/default.xml --daemonize /var/log/uwsgi/app/default.log

Clients, die länger als 30 Sekunden ausgeführt werden, werden direkt abgebrochen usw.

uwsgi -s :9090 -w myapp -p 4

Zusätzlich zum direkten Starten mit dem Befehl uwsgi können Sie auch das Skript unter init.d verwenden, um es zu starten. Sie müssen jedoch zuerst den Pfad der Standardkonfigurationsdatei in /etc/default/u wsgi ändern und dann Starten Sie es über /etc/init.d/uwsgi start ee
uwsgi -s :9090 -w myapp -m -p 4

Browser-Eingabe-IP: Port: 192.168.1.99:9090
Sie können sehen: „Congraduation!!! Uwsgi-Test ok!!!“

Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie ein Python-Webprojekt mit Nginx und uWSGI. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen