Quelles sont les limites de la fiole serveur web intégré
Je suis un débutant dans le web d'administration du serveur. J'ai lu plusieurs fois que le flacon intégré dans le serveur web n'est pas conçu pour la "production", et doit être utilisé uniquement pour les tests et le débogage...
Mais que faire si mon application touchs seulement d'un millier d'utilisateurs qui parfois envoyer des données au serveur ?
Si cela fonctionne, quand j'ai de la peine avec la configuration d'un plus sophistiqué de serveur web ? (Je suis à la recherche d'approximation de la métrique).
En un mot, je serais ravie de trouver ce que l'builtin serveur web peut faire (avec environ seuils) et ce qu'il ne peut pas.
Merci beaucoup !
- Je suis en désaccord avec la double possible. Bien que les deux d'entre eux traitent de la Fiole intégré dans le serveur web, comme la 'production' entoure, les deux questions sont de nature différente (oui/non question VS qualitatif), et cette question est plus spécifique.
InformationsquelleAutor edelans | 2013-12-30
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas une seule bonne réponse à cette question, mais voici quelques choses à garder à l'esprit:
Avec la bonne quantité de mise à l'échelle horizontale, il est tout à fait possible de garder de l'extension de l'utilisation de débogage du serveur pour toujours. Quand exactement vous auriez besoin pour commencer la mise à l'échelle (ou de passer à l'aide d'un "vrai" serveur web) dépend aussi de l'environnement, vous êtes l'hébergement, les attentes des utilisateurs, etc.
La question principale, vous seriez probablement rencontrer, c'est que le serveur est mono-thread. Cela signifie qu'il va traiter chaque demande, un à un, en série. Cela signifie que si vous essayez de servir plus d'une demande (y compris les icônes, éléments statiques tels que des images, des fichiers CSS et Javascript, etc.) les demandes doivent prendre plus de temps. Si la demande arrive à prendre un certain temps (disons, 20 secondes), puis de l'ensemble de votre application ne répond pas pour l'époque (20 secondes). Ce n'est que par défaut, bien sûr: vous pouvez augmenter le nombre de threads (ou de l'autre, les demandes seront traitées dans d'autres processus), ce qui permettrait de répondre à certaines questions. Mais encore une fois, il peut encore être lente en vertu d'une "haute" de la charge. Ce qui est considéré comme "élevé" de la charge dépend de votre demande et les attentes d'un maximum de temps de réponse acceptable.
Un autre problème est la sécurité: si vous êtes inquiet au sujet de la sécurité (et pas seulement de la sécurité des données dans l'application elle-même, mais la sécurité de la zone de l'exécuter en tant que bien), alors vous ne devriez pas utiliser le serveur de développement. Il n'est pas prêt à résister à toute sorte d'attaque.
Enfin, le serveur de développement pourrait simplement de ne pas d'emblée. Il n'est pas conçu pour être utilisé comme un long processus en cours d'exécution (en nombre de jours, semaines, mois), et donc il n'a pas été testé pour fonctionner dans cette capacité.
Donc, oui, il a des limites. Oui, vous pouvez éventuellement l'utiliser en production. Et oui, je voudrais encore vous recommandons d'utiliser un "vrai" serveur web. Si vous n'aimez pas l'idée d'avoir besoin d'installer quelque chose comme Apache ou Nginx, vous pouvez toujours aller avec une solution qui est toujours aussi facile que "exécuter un script python" par l'utilisation de certains des WSGI des serveurs Autonomes, qui permet d'exécuter un serveur qui est conçu pour être mis en production avec quelque chose d'aussi simple que l'exécution de
python run_app.py
dans la ligne de commande. Généralement, vous juste besoin de créer un 4-5 ligne de script python pour importer et créer l'objet serveur, qu'il pointe vers votre Flaconapp
, et de l'exécuter.gunicorn pourrait être exécuté avec seulement le suivant sur la ligne de commande, pas de supplément de script nécessaire:
...où "myproject" est le paquet Python qui contient le
app
Flacon objet.L'OP a depuis longtemps passé, mais pour ceux qui l'abordent cette question dans l'avenir, je voudrais juste ajouter que la mise en place d'un serveur Apache, même sur un ordinateur portable, qui est gratuit et assez facile. Il peut être facilement configuré pour aussi peu ou autant de fonctionnalités que vous voulez simplement en décommenter dans ou en commentant les lignes dans le fichier de configuration. Il y a peut-être encore plus facile GUI méthode pour le faire aujourd'hui, mais à modifier les configs est simple.