web-dev-qa-db-fra.com

Apache + mod_wsgi vs nginx + gunicorn

Je veux déployer un site Django (c'est le code open source edx sur github).

Je suis confronté à choisir entre utiliser

  1. Apache avec mod_wsgi
  2. nginx avec gunicorn

J'ai utilisé Apache avec mod_wsgi et c'est assez cool, mais je n'ai aucune expérience avec la deuxième option.

Laquelle de ces solutions serait la meilleure en termes de rapidité et, dans une certaine mesure, de facilité d’utilisation?

NB: Je devrais exécuter deux sites Django différents, par exemple les ports 80 et 81, et y accéder à partir de deux sous-domaines différents.

23
T. Rex

Nginx est une solution très légère et facile à utiliser. Parallèlement à gunicorn , il nous permet d’exécuter n’importe quelle application wsgi et de l’adapter facilement. Nginx gère mieux les requêtes car il ne génère pas de nouveau processus pour chaque requête, contrairement à Apache.

J'ai écrit une réponse sur la façon de déployer Django avec nginx pour une question connexe:

Déploiement du projet Django avec Gunicorn et nginx

19
Pranjal Mittal

Eh bien, les quelques millisecondes que vous obtenez avec Nginx ne changeront rien au temps que prendront les autres processus. Nginx peut économiser RAM, mais cela ne ferait qu'une grande différence sur les serveurs disposant de peu de RAM. Pour des utilisations spécifiques sur un grand site Web, il pourrait y avoir quelques différences plus notables, mais cela deviendra alors une affaire d'expert.

La vraie différence pour la plupart est probablement la facilité d'apprentissage. Je ne trouve pas Apache particulièrement difficile à utiliser et la documentation est propre. Cependant, la plupart des tutoriels que j'ai trouvés sur Python concernent l'utilisation de Nginx avec Gunicorn.

Si vous connaissez déjà Apache, il serait probablement plus simple de l'utiliser, à moins que vous ne vouliez apprendre Nginx également pour améliorer votre CV.

0
Thib

J'ai une bonne expérience avec Nginx et Gunicorn. Ils continuent de bien fonctionner une fois que tous les paramètres ont été correctement définis et activés.

Pour nginx et gunicorn ils sont:

* nginx configuration files (/etc/nginx/sites-enabled/ and /etc/nginx/nginx.conf)
* gunicorn configuration files (/etc/init/gunicorn.conf and /etc/gunicorn.d/) 

J'ai vu un tutoriel pour Apache + mod_wsgi et il semble tellement plus simple à configurer.

0
Jdruiter