So konfigurieren Sie ein Python-Webprojekt mit Nginx und uWSGI

WBOY
Freigeben: 2023-05-17 20:52:04
nach vorne
1681 Leute haben es durchsucht

Ü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
Nach dem Login kopieren

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;
    }
}
Nach dem Login kopieren

Installieren. uwsgi

apt-get install uwsgi uwsgi-plugin-python
Nach dem Login kopieren

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>
Nach dem Login kopieren

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]
Nach dem Login kopieren

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
Nach dem Login kopieren

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

uwsgi -s :9090 -w myapp -p 4
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!