Maison développement back-end Tutoriel Python Résumé de 9 méthodes de déploiement de programmes Web Python

Résumé de 9 méthodes de déploiement de programmes Web Python

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

Python dispose de nombreux frameworks de développement Web. Une fois le code écrit, le déploiement et le lancement sont un gros problème. De manière générale, les applications Web sont généralement des structures de serveur Web à trois niveaux ---->application ----->. ; Serveur DB

Vous pouvez compter les serveurs Web grand public avec une seule slap, apache, lighttpd, nginx, iis

application, le nom chinois est appelé service d'application, qui est le code d'application que vous écrivez basé sur un certain framework Web. Fait référence aux services de stockage. MySQL est principalement utilisé dans le développement Web. Ces dernières années, en raison de l'expansion de l'échelle des sites Web, le stockage de valeurs clés tel que Memcache et Redis est également devenu populaire Le serveur web placé à l'avant a 3 fonctions

Traiter efficacement les fichiers statiques Le serveur web est développé en C, appelant des fonctions natives, et les IO et le transfert de fichiers sont optimisés en conséquence

Faire office de. un simple pare-feu réseau, vous pouvez nier Certaines IP, contrôlant simplement le nombre de connexions simultanées, etc., valent mieux que rien

Gérer des demandes de connexion courtes simultanées élevées et transférer les demandes de milliers d'utilisateurs via des dizaines de longues connexions sur l'intranet. Une des raisons est que le serveur Web est très professionnel dans la gestion d'une simultanéité élevée. Une autre raison est que les frameworks utilisés par la plupart des applications n'ont pas la capacité de gérer une simultanéité élevée.

En fait, certains frameworks Web. sur le marché ont un support intégré pour epoll/kqueue, etc. Les bibliothèques réseau efficaces ont la capacité de gérer une concurrence élevée, comme Tornado de Python, Tomcat basé sur Java, Jetty, etc. Certaines personnes suppriment le serveur Web frontal et Cependant, lors du déploiement d'applications sur un réseau public, il est préférable de ne pas le faire. De cette façon, pour les deux raisons mentionnées ci-dessus 1 et 2, les conditions de réseau du navigateur de l'utilisateur au serveur Web sont toutes sortes d'étranges et vous pouvez le faire. Je n'imagine pas.

Le serveur Web recommande fortement d'utiliser nginx pour trois raisons

Excellentes performances et très stable

Facile à installer, avec peu de packages dépendants
Le fichier de conf est très facile à configurer, plus simple qu'apache/lighttpd
Il existe 9 façons de déployer des programmes Web développés en python

mod_python, il s'agit d'un module intégré d'apache Cela dépend fortement de la version de python dans laquelle mod_python est. compilé avec. Il est utilisé avec Apache.

cgi n'est pas recommandé. Ceci est trop ancien et non recommandé, et nginx ne prend pas en charge la méthode cgi, vous ne pouvez utiliser que lighttpd ou apache

. fastcgi. Il s'agit actuellement de la méthode la plus populaire, prise en charge par le module flup. L'instruction de configuration correspondante dans nginx est fastcgi_pass

spawn-fcgi , il s'agit du programme de gestion multi-processus fastcgi, fourni avec l'installation de lighttpd. package. Il a le même effet que flup. La différence est que flup est introduit au niveau du code python et que spawn-fcgi est un programme externe. spawn-fcgi est très polyvalent et peut prendre en charge le code développé dans n'importe quel langage, tel que php, python et perl. Tant que votre code implémente l'interface fastcgi, il peut vous aider à gérer votre processus

scgi, le. Le nom complet est Simple Common Gateway Interface est également une version alternative de cgi. Je pense qu'il est similaire à fastcgi, mais il n'a pas été largement promu. La commande de configuration correspondante de nginx est scgi_pass. si vous le souhaitez. Flup le prend également en charge.

http, nginx utilise le transfert proxy_pass. Cela nécessite que l'application back-end ait un serveur http intégré capable de gérer une concurrence élevée. Dans le framework Web Python, la seule option est tornado.

Programmeurs Python J'aime inventer la roue. En plus d'être un framework Web, tornado peut également fournir un serveur http hautes performances de manière indépendante. Par conséquent, si vous utilisez d'autres frameworks python pour écrire du code, comme Bottle, vous pouvez le faire. démarrez également un serveur hautes performances en important le serveur http tornado qui peut également être déployé à l'aide du protocole http et de nginx. En expansion, il existe de nombreux serveurs http dans le package python qui peuvent gérer une concurrence élevée, tels que gevent, qui peuvent également être référencés par d'autres frameworks pour prendre en charge le déploiement http.

En réalité, lors de l'utilisation de Java pour créer des programmes Web, http et nginx sont généralement utilisés. Le serveur d'application choisit Tomcat ou Jetty

uwsgi, qui se compose de 4 parties,

Protocole uwsgi

Module de protocole de support intégré du serveur Web

Module de support du protocole du serveur d'applications
Programme de contrôle de processus

nginx a un support intégré pour le protocole uwsgi à partir de la version 0.8.4. Le protocole uwsgi est très simple, avec 4 mots par en-tête de strophe + un corps, le corps peut être un paquet de nombreux protocoles, tels que http, cgi, etc. (marqué par des champs dans l'en-tête, j'ai déjà fait un petit-). test de comparaison des performances à grande échelle, et les résultats ont montré que par rapport à fastcgi, uwsgi n'a aucune performance. L'avantage évident peut également être dû à l'ensemble de données plus petit

La caractéristique d'uwsgi est son propre programme de contrôle de processus Il est écrit. en langage C et utilise la fonction natvie. En fait, c'est la même chose que spawn-fcgi/php-fpm. Par conséquent, uwsgi peut prendre en charge une variété de frameworks d'application, notamment (python, lua, ruby, erlang, go), etc.

Gunicorn, un outil similaire à uwsgi, est transplanté à partir de l'outil de déploiement de rails (Unicorn) . Mais le protocole qu'il utilise est WSGI, le nom complet est Python Web Server Gateway Interface, qui est la norme officielle (PEP 333) définie dans python2.5. Il a de bonnes racines et est relativement simple à déployer http://gunicorn. org/ Il existe un tutoriel détaillé

mod_wsgi, un module d'Apache, qui prend également en charge le protocole WSGI, https://code.google.com/p/modwsgi/

le protocole fastcgi et http le protocole sont utilisés dans le déploiement du code Comparaison des avantages et des inconvénients

Bien que fastcgi soit un protocole binaire, il n'économise pas de ressources par rapport au protocole http. Le protocole binaire ne peut enregistrer que l'expression de nombres, tels que 1234567. Il faut 7 octets pour l'exprimer sous forme de chaîne et 4 octets sous forme de nombre, et la chaîne est la même partout

Lorsque fastcgi transmet des données , afin qu'il soit compatible avec le protocole cgi et apporte également un tas de variables d'environnement cgi. Par conséquent, par rapport au protocole http, utiliser fastcgi pour transmettre des données n'est pas économique, mais plus coûteux

Le seul avantage de. fastcgi est qu'il s'agit d'une connexion à long terme, si l'utilisateur fait 1000 requêtes simultanées, fastcgi peut utiliser 10 liens pour transférer vers l'application back-end. Si vous utilisez le protocole http, vous pouvez en donner autant que vous le souhaitez, et 1000 requêtes seront initiées vers l'application back-end

méthode de transfert de proxy http, des problèmes surviendront face à une concurrence ultra-élevée, car dans la pile de protocole TCP, le port est un entier int16 lorsque vous créez un nouveau. connectez-vous localement, vous devez consommer un port, qui peut aller jusqu'à 65536. Des centaines de milliers de requêtes externes simultanées, le pool de ports est épuisé et votre serveur ne peut que refuser de répondre

Résumé

Mon habitude personnelle est d'utiliser le protocole fastcgi pour déployer des programmes python. est simple et sans problème. Choisissez la solution technologique, assurez-vous de choisir la solution la plus simple et la plus courante. Le script d'exécution fastcgi de ce blog est le suivant

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
Copier après la connexion

.

Je vous recommande d'essayer Gunicorn, c'est l'orientation future du développement

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle est la raison pour laquelle PS continue de montrer le chargement? Quelle est la raison pour laquelle PS continue de montrer le chargement? Apr 06, 2025 pm 06:39 PM

Les problèmes de «chargement» PS sont causés par des problèmes d'accès aux ressources ou de traitement: la vitesse de lecture du disque dur est lente ou mauvaise: utilisez Crystaldiskinfo pour vérifier la santé du disque dur et remplacer le disque dur problématique. Mémoire insuffisante: améliorez la mémoire pour répondre aux besoins de PS pour les images à haute résolution et le traitement complexe de couche. Les pilotes de la carte graphique sont obsolètes ou corrompues: mettez à jour les pilotes pour optimiser la communication entre le PS et la carte graphique. Les chemins de fichier sont trop longs ou les noms de fichiers ont des caractères spéciaux: utilisez des chemins courts et évitez les caractères spéciaux. Problème du PS: réinstaller ou réparer le programme d'installation PS.

Comment résoudre le problème du chargement lorsque PS est démarré? Comment résoudre le problème du chargement lorsque PS est démarré? Apr 06, 2025 pm 06:36 PM

Un PS est coincé sur le "chargement" lors du démarrage peut être causé par diverses raisons: désactiver les plugins corrompus ou conflictuels. Supprimer ou renommer un fichier de configuration corrompu. Fermez des programmes inutiles ou améliorez la mémoire pour éviter une mémoire insuffisante. Passez à un entraînement à semi-conducteurs pour accélérer la lecture du disque dur. Réinstaller PS pour réparer les fichiers système corrompus ou les problèmes de package d'installation. Afficher les informations d'erreur pendant le processus de démarrage de l'analyse du journal d'erreur.

Comment résoudre le problème du chargement lorsque le PS ouvre le fichier? Comment résoudre le problème du chargement lorsque le PS ouvre le fichier? Apr 06, 2025 pm 06:33 PM

Le bégaiement "Chargement" se produit lors de l'ouverture d'un fichier sur PS. Les raisons peuvent inclure: un fichier trop grand ou corrompu, une mémoire insuffisante, une vitesse du disque dur lente, des problèmes de pilote de carte graphique, des conflits de version PS ou du plug-in. Les solutions sont: vérifier la taille et l'intégrité du fichier, augmenter la mémoire, mettre à niveau le disque dur, mettre à jour le pilote de carte graphique, désinstaller ou désactiver les plug-ins suspects et réinstaller PS. Ce problème peut être résolu efficacement en vérifiant progressivement et en faisant bon usage des paramètres de performances PS et en développant de bonnes habitudes de gestion des fichiers.

Comment utiliser MySQL après l'installation Comment utiliser MySQL après l'installation Apr 08, 2025 am 11:48 AM

L'article présente le fonctionnement de la base de données MySQL. Tout d'abord, vous devez installer un client MySQL, tel que MySQLWorkBench ou le client de ligne de commande. 1. Utilisez la commande MySQL-UROot-P pour vous connecter au serveur et connecter avec le mot de passe du compte racine; 2. Utilisez Createdatabase pour créer une base de données et utilisez Sélectionner une base de données; 3. Utilisez CreateTable pour créer une table, définissez des champs et des types de données; 4. Utilisez InsertInto pour insérer des données, remettre en question les données, mettre à jour les données par mise à jour et supprimer les données par Supprimer. Ce n'est qu'en maîtrisant ces étapes, en apprenant à faire face à des problèmes courants et à l'optimisation des performances de la base de données que vous pouvez utiliser efficacement MySQL.

Comment les plumes PS contrôlent-elles la douceur de la transition? Comment les plumes PS contrôlent-elles la douceur de la transition? Apr 06, 2025 pm 07:33 PM

La clé du contrôle des plumes est de comprendre sa nature progressive. Le PS lui-même ne fournit pas la possibilité de contrôler directement la courbe de gradient, mais vous pouvez ajuster de manière flexible le rayon et la douceur du gradient par plusieurs plumes, des masques correspondants et des sélections fines pour obtenir un effet de transition naturel.

MySQL doit-il payer MySQL doit-il payer Apr 08, 2025 pm 05:36 PM

MySQL a une version communautaire gratuite et une version d'entreprise payante. La version communautaire peut être utilisée et modifiée gratuitement, mais le support est limité et convient aux applications avec des exigences de stabilité faibles et des capacités techniques solides. L'Enterprise Edition fournit une prise en charge commerciale complète pour les applications qui nécessitent une base de données stable, fiable et haute performance et disposées à payer pour le soutien. Les facteurs pris en compte lors du choix d'une version comprennent la criticité des applications, la budgétisation et les compétences techniques. Il n'y a pas d'option parfaite, seulement l'option la plus appropriée, et vous devez choisir soigneusement en fonction de la situation spécifique.

Comment optimiser les performances de la base de données après l'installation de MySQL Comment optimiser les performances de la base de données après l'installation de MySQL Apr 08, 2025 am 11:36 AM

L'optimisation des performances MySQL doit commencer à partir de trois aspects: configuration d'installation, indexation et optimisation des requêtes, surveillance et réglage. 1. Après l'installation, vous devez ajuster le fichier my.cnf en fonction de la configuration du serveur, tel que le paramètre innodb_buffer_pool_size, et fermer query_cache_size; 2. Créez un index approprié pour éviter les index excessifs et optimiser les instructions de requête, telles que l'utilisation de la commande Explication pour analyser le plan d'exécution; 3. Utilisez le propre outil de surveillance de MySQL (ShowProcessList, Showstatus) pour surveiller la santé de la base de données, et sauvegarde régulièrement et organisez la base de données. Ce n'est qu'en optimisant en continu ces étapes que les performances de la base de données MySQL peuvent être améliorées.

Comment configurer des plumes de PS? Comment configurer des plumes de PS? Apr 06, 2025 pm 07:36 PM

La plume PS est un effet flou du bord de l'image, qui est réalisé par la moyenne pondérée des pixels dans la zone de bord. Le réglage du rayon de la plume peut contrôler le degré de flou, et plus la valeur est grande, plus elle est floue. Le réglage flexible du rayon peut optimiser l'effet en fonction des images et des besoins. Par exemple, l'utilisation d'un rayon plus petit pour maintenir les détails lors du traitement des photos des caractères et l'utilisation d'un rayon plus grand pour créer une sensation brumeuse lorsque le traitement de l'art fonctionne. Cependant, il convient de noter que trop grand, le rayon peut facilement perdre des détails de bord, et trop petit, l'effet ne sera pas évident. L'effet de plumes est affecté par la résolution de l'image et doit être ajusté en fonction de la compréhension de l'image et de la saisie de l'effet.

See all articles