web-dev-qa-db-fra.com

Quel avantage est ajouté en utilisant Gunicorn + Nginx + Flask?

Je vois que les gens exécutent des configurations comme Nginx + Gunicorn + Flask.

Quelqu'un peut-il expliquer quel est l'avantage d'avoir Gunicorn devant Flask? Pourquoi ne pas simplement exécuter Flask seul? Ne consomme-t-il pas plus de ressources en ayant Gunicorn + Flask en cours d'exécution? Est-ce que Gunicorn peut redémarrer le Flask instance quand il ne répond pas?

Quel est également le but d'avoir nginx sur le dessus de gunicorn? Le gunicorn n'est-il pas suffisant? Encore une fois, plus de ressources dépensées?

48
KJW

Je pense que vous pouvez être confus, Flask n'est pas un serveur web , c'est un framework et a besoin d'une sorte de serveur Web, comme Gunicorn, Nginx ou Apache, pour accepter les requêtes HTTP sur lesquelles il fonctionnera ensuite. La raison pour laquelle les gens exécutent Nginx et Gunicorn ensemble est que, en plus d'être un serveur Web, Nginx peut également proxy des connexions à Gunicorn qui apporte certains avantages de performance, voici une assez bonne réponse qui développe ces avantages: https://serverfault.com/questions/220046/why-is-setting-nginx-as-a-reverse-proxy-a- bonne idée

EDIT: Ajout d'un lien contenant des informations sur les avantages en termes de performances de l'exécution de Nginx en tant que proxy.

38
Jon