Le 23/01/2013 10:10, Gregory Duchatelet
a écrit :
NGiNX est un excellent serveur HTTP, je l'ai d'ailleurs mis en
amont, mais mes Apache encaisse encore 1000 qps. Un Apache2 bien
configuré sera meilleur qu'un NGiNX stock, et vice-versa.
As tu fais ton calcul de ressources? Car entre un Apache bien
configuré et un Nginx bien configuré, les ressources nécessaires ne
sont pas du tout les mêmes, la seule limite qui vient gâcher un peu
le gain c'est d'avoir un kernel ultra optimisé et des cartes réseaux
multi irq.
J'ai consolidé des archis où on est passé de plusieurs dizaine
d'Apache à moins d'une dizaine de Nginx.
Quand tu fais le calcul du prix du serveur, électricité, espace
housing, ... le client était ravi. Et en plus on a gagné en tenue de
charge.
J'ai
réfléchi à migrer tout mes Apache sous NGiNX, et je me heurte à un
besoin tout bête : l'équivalent de RewriteCond. Sous NGiNX ça se
fait avec "if" mais la doc de Nginx a une page dédié au
découragement de son utilisation : IfIsEvil
C'est les rewrites rules dans les configurations des vhosts ou pire
des .htaccess qui sont evil.
Si tu dois faire des redirections en amont pour traiter l'historique
de tes sites (changement d'url, opération spéciale, ...) cela
devrait être réservé au reverse proxy qui dans ton cas devrait
plutôt être sous Varnish si tu as des besoins plus larges que des if
à mettre en place.
Les applications depuis quelques années (CMS, Framework, custom dev)
gèrent les redirections en interne et finalement la configuration
d'un Apache ou Nginx consiste à renvoyer les fichiers ou répertoires
qui n'existent pas à index.php ou autre.
Du coup cela te libère de cette contrainte.
Dans deux cas clients avec du custom dev et des pages et des pages
de rewrite apache, on s'est orienté vers un redirect.php qui gère
tout cela pour simplifier les rewrites et finalement redonner la
main sur ce réglage au client (il le met dans ses livraisons).
Avec ma stack NGiNX + Apache2/mod_php, finalement je peux faire ce
que je veux avec des perfs plus qu’honorable et une montée en
charge sans soucis, d'ailleurs, ce qui me pose soucis aujourd'hui
lors de montée en charge violente, c'est le code PHP et ses
connexions à memcached, memcached qui part en sucette... Vivement
qu'ils aient tout passé sur Redis !
Des soucis avec memcached, tu dois pas y aller de main morte :D