Maison > Article > développement back-end > Résumé de 9 méthodes de déploiement de programmes Web Python
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
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
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 Jettyuwsgi, qui se compose de 4 parties,
Protocole uwsgi
Module de protocole de support intégré du serveur WebModule 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.
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!