Heim Backend-Entwicklung Python-Tutorial Zusammenfassung von 9 Bereitstellungsmethoden für Python-Webprogramme

Zusammenfassung von 9 Bereitstellungsmethoden für Python-Webprogramme

Apr 16, 2018 pm 05:01 PM
python web 方式

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

Verarbeiten Sie statische Dateien effizient. Der Webserver ist in C entwickelt, ruft native Funktionen auf und IO und Dateiübertragung werden entsprechend optimiert

Funktioniert als Eine einfache Netzwerk-Firewall, Sie können sich vorstellen, dass einige IPs, die einfach die Anzahl gleichzeitiger Verbindungen usw. steuern, besser als nichts sind

Verarbeitung hoher gleichzeitiger kurzer Verbindungsanfragen und Weiterleitung von Anfragen von Tausenden von Benutzern über Dutzende lange Ein Grund dafür ist, dass der Webserver sehr professionell mit hoher Parallelität umgeht. Ein weiterer Grund ist, dass die von den meisten Anwendungen verwendeten Frameworks nicht in der Lage sind, hohe Parallelität zu verarbeiten.

Tatsächlich sind es einige Web-Frameworks Auf dem Markt gibt es integrierte Unterstützung für Epoll/Kqueue usw. Effiziente Netzwerkbibliotheken können mit hoher Parallelität umgehen, z. B. Pythons Tornado, Java-basierter Tomcat, Jetty usw. Einige Leute entfernen den Front-End-Webserver und Bei der Bereitstellung öffentlicher Netzwerkanwendungen ist es jedoch am besten, dies nicht zu tun. Aufgrund der beiden oben genannten Gründe 1 und 2 sind die Netzwerkbedingungen vom Benutzerbrowser bis zum Webserver sehr seltsam Kann ich mir nicht vorstellen.

Der Webserver empfiehlt dringend die Verwendung von Nginx aus drei Gründen

Ausgezeichnete Leistung und sehr stabil

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

mod_python, dies ist ein integriertes Modul von Apache. Es hängt stark von der Python-Version mod_python ab wird mit kompiliert.

CGI ist zu alt und wird nicht empfohlen. Nginx unterstützt keine CGI-Methode. Sie können nur Lighttpd oder Apache verwenden >fastcgi. Dies ist derzeit die beliebteste Methode, die vom flup-Modul unterstützt wird. Die entsprechende Konfigurationsanweisung in nginx ist fastcgi_pass

spawn-fcgi , das ist das fastcgi-Multiprozess-Verwaltungsprogramm, das mit dem lighttpd geliefert wird Installationspaket. Es hat den gleichen Effekt wie flup. Der Unterschied besteht darin, dass flup auf der Python-Codeebene eingeführt wird und spawn-fcgi ein externes Programm ist. spawn-fcgi ist sehr vielseitig und kann Code unterstützen, der in jeder Sprache wie PHP, Python und Perl entwickelt wurde. Solange Ihr Code die Fastcgi-Schnittstelle implementiert, kann es Ihnen bei der Verwaltung Ihres Prozesses

scgi helfen Der vollständige Name lautet Simple Common Gateway Interface und ist meiner Meinung nach eine sehr einfache Version von fastcgi. Der entsprechende Konfigurationsbefehl von nginx ist jedoch nicht verfügbar es, wenn Sie möchten, unterstützt es auch.

HTTP, Nginx verwendet Proxy_Pass-Weiterleitung. Dies erfordert, dass die Back-End-Anwendung über einen integrierten HTTP-Server verfügt, der eine hohe Parallelität verarbeiten kann. Im Python-Webframework ist die einzige Option Tornado.

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 Jetty

uwsgi, das aus 4 Teilen besteht:

uwsgi-Protokoll

Integriertes Webserver-Unterstützungsprotokollmodul

Anwendungsserverprotokoll-Unterstützungsmodul

Prozesssteuerungsprogramm

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.

Das Merkmal von uwsgi ist, dass es ein eigenes Prozesssteuerungsprogramm ist in der C-Sprache und verwendet die Natvie-Funktion. Tatsächlich ist es dasselbe wie spawn-fcgi/php-fpm. Daher kann uwsgi eine Vielzahl von Anwendungsframeworks unterstützen, darunter (Python, Lua, Ruby, Erlang, Go) usw.

Gunicorn, ein uwsgi-ähnliches Tool, wurde aus dem Rails-Bereitstellungstool (Unicorn) übernommen. . Das verwendete Protokoll ist jedoch WSGI, der vollständige Name ist Python Web Server Gateway Interface, der offizielle Standard (PEP 333), der in Python 2.5 definiert ist. Er hat gute Wurzeln und ist relativ einfach bereitzustellen. org/ Es gibt detaillierte Tutorials

mod_wsgi, ein Modul von Apache, das auch das WSGI-Protokoll unterstützt, https://code.google.com/p/modwsgi/

fastcgi-Protokoll und http-Protokoll werden bei der Codebereitstellung verwendet Vergleich der Vor- und Nachteile

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

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!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP und Python: Code Beispiele und Vergleich PHP und Python: Code Beispiele und Vergleich Apr 15, 2025 am 12:07 AM

PHP und Python haben ihre eigenen Vor- und Nachteile, und die Wahl hängt von den Projektbedürfnissen und persönlichen Vorlieben ab. 1.PHP eignet sich für eine schnelle Entwicklung und Wartung großer Webanwendungen. 2. Python dominiert das Gebiet der Datenwissenschaft und des maschinellen Lernens.

Python gegen JavaScript: Community, Bibliotheken und Ressourcen Python gegen JavaScript: Community, Bibliotheken und Ressourcen Apr 15, 2025 am 12:16 AM

Python und JavaScript haben ihre eigenen Vor- und Nachteile in Bezug auf Gemeinschaft, Bibliotheken und Ressourcen. 1) Die Python-Community ist freundlich und für Anfänger geeignet, aber die Front-End-Entwicklungsressourcen sind nicht so reich wie JavaScript. 2) Python ist leistungsstark in Bibliotheken für Datenwissenschaft und maschinelles Lernen, während JavaScript in Bibliotheken und Front-End-Entwicklungsbibliotheken und Frameworks besser ist. 3) Beide haben reichhaltige Lernressourcen, aber Python eignet sich zum Beginn der offiziellen Dokumente, während JavaScript mit Mdnwebdocs besser ist. Die Wahl sollte auf Projektbedürfnissen und persönlichen Interessen beruhen.

Wie ist die GPU -Unterstützung für Pytorch bei CentOS? Wie ist die GPU -Unterstützung für Pytorch bei CentOS? Apr 14, 2025 pm 06:48 PM

Aktivieren Sie die Pytorch -GPU -Beschleunigung am CentOS -System erfordert die Installation von CUDA-, CUDNN- und GPU -Versionen von Pytorch. Die folgenden Schritte führen Sie durch den Prozess: Cuda und Cudnn Installation Bestimmen Sie die CUDA-Version Kompatibilität: Verwenden Sie den Befehl nvidia-smi, um die von Ihrer NVIDIA-Grafikkarte unterstützte CUDA-Version anzuzeigen. Beispielsweise kann Ihre MX450 -Grafikkarte CUDA11.1 oder höher unterstützen. Download und installieren Sie Cudatoolkit: Besuchen Sie die offizielle Website von Nvidiacudatoolkit und laden Sie die entsprechende Version gemäß der höchsten CUDA -Version herunter und installieren Sie sie, die von Ihrer Grafikkarte unterstützt wird. Installieren Sie die Cudnn -Bibliothek:

Detaillierte Erklärung des Docker -Prinzips Detaillierte Erklärung des Docker -Prinzips Apr 14, 2025 pm 11:57 PM

Docker verwendet Linux -Kernel -Funktionen, um eine effiziente und isolierte Anwendungsumgebung zu bieten. Sein Arbeitsprinzip lautet wie folgt: 1. Der Spiegel wird als schreibgeschützte Vorlage verwendet, die alles enthält, was Sie für die Ausführung der Anwendung benötigen. 2. Das Union File System (UnionFS) stapelt mehrere Dateisysteme, speichert nur die Unterschiede, speichert Platz und beschleunigt. 3. Der Daemon verwaltet die Spiegel und Container, und der Kunde verwendet sie für die Interaktion. 4. Namespaces und CGroups implementieren Container -Isolation und Ressourcenbeschränkungen; 5. Mehrere Netzwerkmodi unterstützen die Containerverbindung. Nur wenn Sie diese Kernkonzepte verstehen, können Sie Docker besser nutzen.

Wie man eine verteilte Schulung von Pytorch auf CentOS betreibt Wie man eine verteilte Schulung von Pytorch auf CentOS betreibt Apr 14, 2025 pm 06:36 PM

Pytorch Distributed Training on CentOS -System erfordert die folgenden Schritte: Pytorch -Installation: Die Prämisse ist, dass Python und PIP im CentOS -System installiert sind. Nehmen Sie abhängig von Ihrer CUDA -Version den entsprechenden Installationsbefehl von der offiziellen Pytorch -Website ab. Für CPU-Schulungen können Sie den folgenden Befehl verwenden: PipinstallTorChTorChVisionTorChaudio Wenn Sie GPU-Unterstützung benötigen, stellen Sie sicher, dass die entsprechende Version von CUDA und CUDNN installiert ist und die entsprechende Pytorch-Version für die Installation verwenden. Konfiguration der verteilten Umgebung: Verteiltes Training erfordert in der Regel mehrere Maschinen oder mehrere Maschinen-Mehrfach-GPUs. Ort

Miniopen CentOS -Kompatibilität Miniopen CentOS -Kompatibilität Apr 14, 2025 pm 05:45 PM

Minio-Objektspeicherung: Hochleistungs-Bereitstellung im Rahmen von CentOS System Minio ist ein hochleistungsfähiges, verteiltes Objektspeichersystem, das auf der GO-Sprache entwickelt wurde und mit Amazons3 kompatibel ist. Es unterstützt eine Vielzahl von Kundensprachen, darunter Java, Python, JavaScript und Go. In diesem Artikel wird kurz die Installation und Kompatibilität von Minio zu CentOS -Systemen vorgestellt. CentOS -Versionskompatibilitätsminio wurde in mehreren CentOS -Versionen verifiziert, einschließlich, aber nicht beschränkt auf: CentOS7.9: Bietet einen vollständigen Installationshandbuch für die Clusterkonfiguration, die Umgebungsvorbereitung, die Einstellungen von Konfigurationsdateien, eine Festplattenpartitionierung und Mini

So wählen Sie die Pytorch -Version auf CentOS aus So wählen Sie die Pytorch -Version auf CentOS aus Apr 14, 2025 pm 06:51 PM

Bei der Installation von PyTorch am CentOS -System müssen Sie die entsprechende Version sorgfältig auswählen und die folgenden Schlüsselfaktoren berücksichtigen: 1. Kompatibilität der Systemumgebung: Betriebssystem: Es wird empfohlen, CentOS7 oder höher zu verwenden. CUDA und CUDNN: Pytorch -Version und CUDA -Version sind eng miteinander verbunden. Beispielsweise erfordert Pytorch1.9.0 CUDA11.1, während Pytorch2.0.1 CUDA11.3 erfordert. Die Cudnn -Version muss auch mit der CUDA -Version übereinstimmen. Bestimmen Sie vor der Auswahl der Pytorch -Version unbedingt, dass kompatible CUDA- und CUDNN -Versionen installiert wurden. Python -Version: Pytorch Official Branch

Python: Automatisierung, Skript- und Aufgabenverwaltung Python: Automatisierung, Skript- und Aufgabenverwaltung Apr 16, 2025 am 12:14 AM

Python zeichnet sich in Automatisierung, Skript und Aufgabenverwaltung aus. 1) Automatisierung: Die Sicherungssicherung wird durch Standardbibliotheken wie OS und Shutil realisiert. 2) Skriptschreiben: Verwenden Sie die PSUTIL -Bibliothek, um die Systemressourcen zu überwachen. 3) Aufgabenverwaltung: Verwenden Sie die Zeitplanbibliothek, um Aufgaben zu planen. Die Benutzerfreundlichkeit von Python und die Unterstützung der reichhaltigen Bibliothek machen es zum bevorzugten Werkzeug in diesen Bereichen.

See all articles