Heim > Artikel > Backend-Entwicklung > Zusammenfassung von 9 Bereitstellungsmethoden für Python-Webprogramme
Python verfügt über viele Webentwicklungs-Frameworks. Nachdem der Code geschrieben wurde, ist die Bereitstellung und der Start im Allgemeinen eine dreistufige Struktur von Webservern ---->Anwendung -----> ; DB-Server
Sie können die Mainstream-Webserver mit einem Schlag zählen, Apache, Lighttpd, Nginx, IIS
Anwendung, der chinesische Name heißt Anwendungsdienst, das ist der Anwendungscode, den Sie schreiben Basierend auf einem bestimmten Web-Framework. MySQL wird hauptsächlich in der Webentwicklung verwendet. Aufgrund der Erweiterung der Website-Skala sind auch Schlüsselwertspeicher wie Memcache und Redis populär geworden > Der an der Vorderseite platzierte Webserver hat 3 Funktionen
Einfach zu installieren, mit wenigen abhängigen Paketen
Die conf-Datei ist Sehr einfach zu konfigurieren, einfacher als Apache/lighttpd
Es gibt 9 Möglichkeiten, in Python entwickelte Webprogramme
Python-Programmierer erfinden gerne das Rad. Tornado ist nicht nur ein Web-Framework, sondern kann auch unabhängig einen leistungsstarken HTTP-Server bereitstellen. Wenn Sie also andere Python-Frameworks zum Schreiben von Code verwenden, können Sie dies tun Starten Sie auch einen leistungsstarken Tornado-Server, der auch über das HTTP-Protokoll und Nginx bereitgestellt werden kann. Darüber hinaus gibt es im Python-Paket viele http-Server, die eine hohe Parallelität verarbeiten können, z. B. gevent, auf den auch andere Frameworks verweisen können, um die http-Bereitstellung zu unterstützen. In Wirklichkeit werden bei der Verwendung von Java zum Erstellen von Webprogrammen normalerweise http und nginx verwendet. Der Anwendungsserver wählt Tomcat oder Jettyuwsgi, das aus 4 Teilen besteht: uwsgi-Protokoll
Integriertes Webserver-Unterstützungsprotokollmodul
Anwendungsserverprotokoll-UnterstützungsmodulProzesssteuerungsprogramm
nginx verfügt über integrierte Unterstützung für das uwsgi-Protokoll ab 0.8.4. Das uwsgi-Protokoll ist sehr einfach, mit 4 Wörtern pro Stanza-Header + einem Body. Der Body kann ein Paket aus vielen Protokollen wie http, cgi usw. sein (markiert durch Felder im Header). Der Leistungsvergleichstest zeigt, dass uwsgi im Vergleich zu fastcgi keine Leistung aufweist. Der offensichtliche Vorteil kann auch auf den kleineren Datensatz zurückzuführen sein.
Obwohl fastcgi ein Binärprotokoll ist, spart es im Vergleich zum http-Protokoll keine Ressourcen. Das Binärprotokoll kann nur den Ausdruck von Zahlen wie 1234567 speichern. Es werden 7 Bytes benötigt, um es als Zeichenfolge auszudrücken, und 4 Bytes als Zahl, und die Zeichenfolge ist überall gleich
Wenn fastcgi Daten überträgt , in Ordnung Es ist mit dem CGI-Protokoll kompatibel und bringt auch eine Reihe von CGI-Umgebungsvariablen mit. Daher ist die Verwendung von Fastcgi zum Übertragen von Daten nicht wirtschaftlich, aber teurer
Der einzige Vorteil von Bei fastcgi handelt es sich um eine langfristige Verbindung. Wenn der Benutzer 1000 gleichzeitige Anfragen stellt, kann fastcgi 10 Links zur Weiterleitung an die Back-End-Anwendung verwenden. Wenn Sie das http-Protokoll verwenden, können Sie so viele angeben, wie Sie möchten 1000 Anfragen werden an die Back-End-Anwendung
HTTP-Proxy-Weiterleitungsmethode initiiert. Bei extrem hoher Parallelität treten Probleme auf, da der Port im TCP-Protokollstapel eine Ganzzahl vom Typ int16 ist, wenn Sie eine neue erstellen Um eine lokale Verbindung herzustellen, müssen Sie einen Port nutzen, der bis zu 65536 sein kann. Hunderttausende externe gleichzeitige Anfragen, der Portpool ist erschöpft und Ihr Server kann nur die Antwort verweigern
Zusammenfassung
Meine persönliche Angewohnheit ist es, das Fastcgi-Protokoll zum Bereitstellen von Python-Programmen zu verwenden ist einfach und problemlos. Wählen Sie die einfachste und gebräuchlichste Lösung. Das Fastcgi-Laufskript dieses Blogs lautet wie folgt:
kill - `cat / tmp / django.pid` echo 'restart django....' python . / manage.py runfcgi - - settings = lutaf.settings_r maxchildren = maxspare = minspare = method = prefork pidfile = / tmp / django.pid host = 127.0 . 0.1 port = outlog = / tmp / dj.out errlog = / tmp / dj.error
Ich empfehle Ihnen, Gunicorn auszuprobieren, das ist die zukünftige Entwicklungsrichtung
Das obige ist der detaillierte Inhalt vonZusammenfassung von 9 Bereitstellungsmethoden für Python-Webprogramme. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!