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