Julien m’a envoyé un email récemment, me parlant d’une solution d’optimisation des performances d’un site web sous PHP. L’idée : mettre un reverse-proxy avec Varnish en front, Nginx en back (qui gèrerait le PHP via PHP-FPM), ce a quoi on pourrait rajouter un système de cache du PHP (lui proposait Xcache, mais moi je connais un peu mieux eAccelerator). Son idée est en fait excellente. En effet, sachant que jusqu’à présent l’utilisation de WP-Super-Cache m’empèche de virer totalement Apache, pourquoi ne pas enlever Wp-Super-Cache (c’est a dire de regénerer les pages à chaque appel), mais ce via une structure beaucoup plus rapide ?
Pour être très clair, je n’ai pas testé cette combinaison.
A l’heure actuelle, comme je l’ai souvent dit, je fonctionne sur une pile Nginx (front) / Apache (back) / eAccelerator / Memcached. Sachant que WP-Super-Cache se place au niveau de Apache.
La pile de Julien serait Varnish / Nginx / eAccelerator / memcached.
Franchement, cette pile m’a l’air extrêmement intéressante. Je ne l’ai pas testée, mais j’aimerais vraiment faire un petit benchmark, parce que je suis sûr que les perfs seraient intéressantes, voire encore meilleures que celles de la pile actuelle !
Si vous avez testé cette configuration, je vous remercie de m’en donner des feedbacks !
Je pense que la pile de Julien est vraiment intéressante et j’ai toujours voulu prendre un peu de temps pour effectuer différents benchmarks moi aussi… sauf que je ne l’ai jamais trouvé ; le temps. Au départ j’aurais plutôt opté pour une solution à base de Lighttpd…
@NightAngel: Ben je pense qu’on peut intervertir Varnish avec Nginx, mais sinon les performances doivent également être intéressantes.
De toutes façons au bout d’un moment ça devient de la branl****, pourquoi ne pas tout charger en RAM pendant qu’on y est… non parce que si c’est pour faire tout ça et se retrouver avec un pauvre disque SATA derrière ce n’est pas forcément le plus judicieux.
Même si on s’écarte du débat initial, je pense qu’il faut d’abord avoir un code bien propre avant de se lancer dans des « montages » certes intéressants mais qui peuvent poser des problèmes s’ils sont utilisés à grande échelle et non pour une plate-forme de tests.
Dans pas mal de cas le plus problématique reste de dégager Apache… enfin pour beaucoup de monde et beaucoup d’usages.
Merci pour ce petit billet 🙂
Je n’ai malheureusement pas encore eu le temps de tester cette solution de mon coté.
NightAngel : On peut mettre en ram les fichiers de cache avec varnish de mémoire 🙂
Bien sûr qu’un code optimisé est ce qu’il y a de mieux mais c’est ce que je m’éfforce de faire déjà. Le serveur web et la mise en cache sont des éléments supplémentaires de l’optimisation.
C’est une accumulation de choses qui font qu’un site devient rapide au chargement (serveur, code optimisé, compression et unification, gzip, cache serveur, cache client, sprites css quand cela est possible, etc…)
Je mets ici un lien très intéressant sur le combo Nginx / Varnish : http://naholyr.fr/2011/03/varnish-edge-side-includes-cache-partiel/
Facebook utilise Varnish et Yahoo! utilise Appache Traffic Server. Les deux cachent et servent les resources qui, selon ce que l’on nous dit, seraient servies plus lentement par de simples serveurs Web.
Mais que se passe-t-il lorsque l’on compare les performances des « serveurs Web » aux « accelerateurrs de serveurs Web »?
De grosses surprises:
http://nbonvin.wordpress.com/2011/03/24/serving-small-static-files-which-server-to-use/
Et sinon y’a aussi l’étape intermédiaire ou tu utilises nginx en front et en back tout en conservant wp-super cache.
J’ai vu sur le site de de Donncha qu’il avait fait un tuto pour faire fonctionner wp-super-cache avec nginx. J’aimerais bien savoir si cette conf n’est pas plus perf qu’avec un varnish en front, car nginx rox tellement que si ça se trouve la différence n’est pas flagrante et ça évite de se faire chier avec un reverse proxy.
Oui possible, à voir 🙂
idée intéressante … reste à savoir si :
– support de ce type de solution ? une communauté et tuto existe t il ?
– gain, intérêt / temps passé à mettre en œuvre (résultat SERP, UX … ?)
concrètement, pour mon site qui fait du 15 visites / j est ce intéressant ?
ou uniquement pour un site qui fait du 100 minutes ?
je fais faire un tour sur les liens proposés
merci
Sebastien