Quel est le meilleur pour Django? Lighttpd ou Nginx? Ou peut-être autre chose? [fermé]

18

Lequel de Lighttpd et Nginx est, sur la base de votre expérience, mieux adapté à Django? J'ai utilisé les deux et je ne vois pratiquement aucune différence, ils fonctionnent très bien ... Y a-t-il des cas d'utilisation lorsque l'un d'eux agit beaucoup mieux que l'autre? Lorsque vous répondez, veuillez prendre en compte à la fois la simplicité de configuration et l'efficacité.

Ma configuration habituelle est d'avoir un processus Django FCGI séparé (comme dans ./manage.py runfcgi daemonize=false port=8098 host=127.0.0.1) lancé via daemontools ou un init.dscript et lighty / nginx agissant comme un proxy inverse.

Oh, et si vous pensez qu'un autre serveur http est bien meilleur pour Django que Lighty et Nginx, n'hésitez pas à partager vos réflexions.

Ryszard Szopa
la source
Si un service fastcgi meurt, daemontools supervise le redémarrera dans les cinq secondes, donc le service est de retour. Mais vous avez encore un petit décalage de temps d'arrêt. Dans mon déploiement, j'ai trouvé que fastcgi était fragile, s'arrêtant de façon inattendue sous une légère pression. Après quelques temps d'arrêt et quelques appels téléphoniques maladroits de clients, j'ai changé Nginx pour inverser le proxy vers Apache mod_wsgi et tout ne fait que fredonner depuis.

Réponses:

14

Nginx et Lighttpd sont de meilleurs choix qu'apache quand il s'agit de les utiliser comme proxy inverse pour Django, Rails, etc. Les deux prennent en charge le proxy FastCGI et Http. Les deux offrent un modèle basé sur une sélection unique () (ou mieux) pour une utilisation efficace des ressources.

Cependant mon vote va à Nginx, il a une base d'utilisateurs très active (c'est actuellement le chouchou de l'ensemble Ruby on Rails), et est en développement actif. Lighttpd pourrait être confondu avec la mort, 2 ans et plus et nous attendons toujours une version bêta de 1,5.

Dave Cheney
la source
7

mod_wsgi est un moyen recommandé pour mettre l'application Django en production. Le mod_wsgi d'Apache est bien meilleur que nginx. Vous ne pouvez pas trouver de package officiel (dans les distributions Linux actuelles) pour mod_wsgi de nginx et vous devez le compiler vous-même. J'aime nginx mais si vous voulez jouer en toute sécurité, jouez avec Apache mod_wsgi.

miHost
la source
2
Nginx mod_wsgi n'est pas quelque chose que vous voudriez utiliser. Nginx est préférable de servir le contenu statique et le proxy inverse à Apache mod_wsgi pour générer la dynamique. Vous ne voudriez pas utiliser un serveur Web asynchrone pour générer des pages dynamiques et servir du contenu statique. Apache mod_wsgi à lui seul n'a pas beaucoup de sens non plus. Vous ne voudriez pas que cette bête soit occupée à pulvériser autour de fichiers statiques, alors qu'elle est censée faire le gros du travail. En savoir plus ici b-list.org/weblog/2008/jun/23/media
5

mod-wsgi est le meilleur moyen d'exécuter des applications django en production, moins rapidement que fastcgi et aucun problème avec les heures de démarrage, etc.

Le vrai mod-wsgi est pour apache, mais il existe un autre mod-wsgi pour nginx. L'apache est génial, je ne peux pas commenter sur le nginx.

Personnellement, je resterais loin de lighttpd. Il n'a pas la stabilité de nginx, je n'ai pas encore vu de cas de lighttpd qui n'a pas de fuite de mémoire.

Fondamentalement, mon premier choix serait apache 2.2, mon deuxième choix serait nginx.

Ne croyez pas le battage médiatique sur le temps de réponse et l'évolutivité. La vérité est que cela n'a pas d'importance. (Google utilise Apache).

Riches
la source
Google utilise GWS ( en.wikipedia.org/wiki/Google_Web_Server ) et non Apache. Yahoo utilise Apache, mais c'est une ancienne fourchette de 1.3.
Dave Cheney
YouTube utilise ou du moins utilise lighttpd, donc je ne pense pas que ce soit si mauvais. Voir highscalability.com/youtube-architecture .
Cristian Ciupitu
Oui, mais bien que GWS soit un projet secret, on sait qu'il est basé sur Apache.
ce que YT ne dit pas, c'est qu'ils ont leur propre fourche de lighty. Est vrai que lighty a un problème de fuite de mémoire bien connu. Je pense qu'ils ont peut-être résolu le problème maintenant, mais le représentant persiste.
Abhishek Dujari
2

Pensez également à utiliser Google App Engine. Vous pouvez y héberger votre projet Django gratuitement et ne pas avoir à vous soucier de la maintenance de l'infrastructure du serveur.

Stephen Hassard
la source
8
Django sur GAE a des limitations importantes, comme ne prendre en charge aucune des fonctionnalités de base de données / ORM de Django. S'il prend en charge ce dont vous avez besoin, tant mieux - mais vérifiez attentivement!
Je crois que MySQL est maintenant pris en charge par GAE, donc je suppose que ORM le sera aussi. Bien que ce soit vrai, je n'ai aucune expérience pour l'essayer. Django sans ORM est comme du porno sans torrents.
Abhishek Dujari