Il n’y a pas qu’Apache dans la vie

Par  le 13 mars 2012 - 10:00 dans

Apache est considéré aujourd’hui par beaucoup de professionnels/non professionnels du web comme LA solution en matière de serveur web. On pourrait même parfois douter qu’il en existe d’autres, tant certaines configurations types se retrouvent partout.

Et les autres ? Pour rebondir sur d’autres (excellents) billets du blog RESONEO, vous êtes-vous déjà penchés en profondeur sur la mesure du temps de chargement de votre site sous un autre serveur web ? Qu’utilisent les gros sites ? Sont-ils tous sous Apache ?

Attention : Cet article est basé sur des tests et des configurations relativement standards. Une bonne configuration d’Apache peut donner de très bons résultats, chaque site étant spécifique. Une bonne configuration prend compte du trafic du site, de l’architecture serveur, des compétences de l’admin system ainsi que de l’éventuelle présence d’un CMS. Pour vous faire une idée objective, testez, testez et retestez.

Bien entendu, tous les sites n’utilisent pas Apache. Vous pourrez trouver sur la page dédiée sur le site de Lighttpd par exemple les sites utilisant ce serveur web (http://redmine.lighttpd.net/projects/1/wiki/PoweredByLighttpd), ainsi que sur Nginx (http://trends.builtwith.com/topsites/nginx).

Les sites rebelles du web

Parmi les sites n’utilisant pas Apache ou du moins pas sur la totalité de leur site, on peut donc citer :

  • Cnn.com
  • WordPress.com
  • Tumblr.com
  • Tube 8 (vers lequel nous ne ferons pas de lien sous quelque sorte que ce soit, par le plus grand des hasards)
  • Le service d’upload de Wikipedia

Bref, des gros sites qui pourtant doivent faire face à une charge très importante, et aussi bien servir des ressources statiques que dynamiques, demandées depuis des IP du monde entier.

Ils doivent aussi bien servir des images, que du texte, des pdf, des vidéos en streaming… La totale.

Alors pourquoi quitter Apache ou même ne pas l’installer du tout ?

Et bien Apache peut parfois être gourmand, et ne pas du tout correspondre à vos besoins en terme de charge ou de fonctionnement.

D’autres serveurs web ont donc été créés afin de répondre à ce besoin de performance et/ou de spécificité.

Les deux plus connus, que nous avons déjà cités plus haut, sont Nginx et Lighttpd.

Ce sont tous les deux des serveurs web très légers, très appréciés par certains SEO pour leur rapidité et leur faible charge serveur.

Le fameux temps de chargement

Pourquoi ce fameux temps de chargement est-il si important ? Pour deux raisons majeures :

  1. Google nous promet depuis des années de mieux positionner les sites avec des temps de chargement plus rapides. Il n’a pas encore concrètement sauté le pas, mais ça n’empêche pas de prendre les devants et de commencer à travailler dans ce sens.
  2. La conversion. Parler de temps de chargement, ça doit en faire bailler certains, je le conçois. Mais je disais par exemple que si l’on réduisait le chargement des pages de ventes de notre site à moins d’une seconde, on multiplierait par 3 notre taux de conversion, ça ne ferait pas rêver ?

Trop beau pour être vrai vous dites-vous ? Et bien non. Walmart vient de publier une étude (disponible ici http://www.powerretail.com.au/multichannel/performance-walmart-case-study/) arguant qu’un temps de chargement des pages de vente supérieur à 1 seconde divisait par 3 le taux de conversion.

Le temps, c’est de l’argent

Pour ceux qui n’aiment pas lire, voici le graphique en question :

Graphique de conversion en fonction du temps de chargement

Le temps de chargement impacte fortement la conversion

Ouch vous dites-vous ? Vous avez bien raison, car les internautes, à l’heure du haut débit, n’aiment plus attendre.

Dès lors, envisager une autre solution en matière de serveur web devient une idée potentiellement rentable.

Pourquoi d’autres serveurs web ?

Voici des graphiques comparant Apache et lighttpd (les données étant facilement accessibles) :

Avec un test ab avec une concurrence de 3, 50 requêtes au total :

Comparaison du temps de complétion et du nombre de requêtes par seconde

Comparaison du temps de complétion et du nombre de requêtes par seconde

On peut observer que Lighttpd met 62% moins de temps qu’Apache à exécuter le test. Lighttpd peut également faire 168% de requêtes supplémentaires par seconde.

Taux de transfert

Taux de transfert

Lighttpd affiche un taux de transfert supérieur de 162%.

Temps nécessaire par requête

Temps nécessaire par requête

Il faut à Lighttpd 62% moins de temps pour faire une requête par rapport à Apache.

Source : http://www.markround.com/archives/30-LigHTTPd-and-Apache-Symfony-benchmarks.html

Tous ces graphiques montrent bien que des solutions alternatives peuvent être bien plus intéressantes que les grands classiques.

Attention toutefois, ce n’est pas le saint graal, certains fichiers ou requêtes gagneraient à être servies par un autre serveur, afin d’encore plus optimiser le temps de chargement.

Vous pouvez même mettre en place une période de test où vous feriez tourner les deux ou les trois serveurs web en même temps, sur des ports différents, afin de tester.

Si vous avez encore besoin d’arguments pour être convaincus, sachez que ces serveurs web alternatifs sont en général nettement plus simples à configurer, et supportent parfaitement les langages web classiques, le https, la mise en cache…

Et bien qu’étant des challengers, ils disposent d’une communauté étant tout à même de vous aider en cas de difficultés, si les nombreux tutoriaux complets disponibles sur le net n’étaient pas suffisants.

Vous pourrez également par extrapolation ne pas être touchés par les attaques de malwares et failles dédiées à Apache, un peu à la manière de Mac par rapport à Windows.

Penchez-vous sur la question de votre serveur web. Pourrait-il aller plus vite ? Des internautes se sont-ils déjà plaints du temps de chargement ? Google affiche-t-il des mauvais résultats dans Google webmaster tools ?

Si vous avez répondu oui à une de ces questions, c’est le moment de tester d’autres configurations et vous renseigner sur l’amélioration du temps de chargement.

Et on le sait, le temps… C’est de l’argent

Ajouter le votre
7 commentaires
K 13 mars 2012 - 11:29 - Répondre

Pour les gros gros sites, regardez aussi du coté de varnish, ça peut VRAIMENT valoir le coup, notamment si vous utilisez des CMS assez lourd type drupal (ou un gros wp).

A parler de performance pour le seo, il faut avoir qques connaissance d’archi réseau.

La configuration idéale est de mettre :
- Tout le contenu static sur un CDN (css/images/sprites/pdf/etc…)
- La base de donnée sur un serveur dédié à ça (le serveur mysql/sql)
- Un backend tournant sous le serveur web DONT VOUS MAITRISEZ LE PLUS LA CONF. (De trop nombreuses personnes font des copier/coller de configuration nginx sans en comprendre le fonctionnement.)
- Varnish en frontal qui vous mettra en cache tout ça sans trop de difficulté de configuration. Vous pourrez en combiner plusieurs pour faire un round robin logiciel.
Et, si les budgets vous le permettent, un Big-ip de F5 qui vous fera lui aussi du round robin, mais hardware cette fois (juste devant les varnish).

Avec ça vous avez une vraie architecture, taillée pour la haute disponibilité et la performance.

Évidemment on ne met pas ça en place pour un site de < 100k VU/j. Cela peut cependant être mis en place pour les utilisateurs ayant beaucoup de sites centralisés.

(note: commentaire sous licence AMHA)

Bruno Hug 13 mars 2012 - 13:13 - Répondre

Bonjour K

Effectivement, j’ai volontairement omis de parler de Varnish, car il se greffe en plus sur n’importe quel serveur web. C’est une étape supplémentaire je dirais, qui peut effectivement donner d’excellents résultats.

Aurélien 13 mars 2012 - 12:06 - Répondre

J’ai découvert Tube 8, je ne te demanderais pas comment tu connais ce site Bruno. ;)
Par contre, quid de IIS ? Tu as des données ?

Bruno Hug 13 mars 2012 - 13:21 - Répondre

Bonjour Aurélien

A ma défense, le tub 8 en question est sur la page http://redmine.lighttpd.net/projects/1/wiki/PoweredByLighttpd, citée dans l’article. Je l’ai moi aussi découvert (et vite refermé).

Et oui j’ai une source, qui semble assez fiable (644 millions de sites checkés sur février) http://news.netcraft.com/archives/2012/03/05/march-2012-web-server-survey.html.

Microsoft est à 13%.

Baptiste 13 mars 2012 - 14:03 - Répondre

Les alternatives à Apache sont intéressantes dès que le besoin s’en fait sentir. Il faut cependant relativiser puisque le temps de chargement d’une page est essentiellement en front-end et qu’il existe des tonnes d’optimisations à faire avant de considérer un changement de serveur Web.

Par contre, pas un mot sur la prochaine version d’Apache, qui devrait être plus rapide ?
http://www.tux-planet.fr/les-nouveautes-dapache-2-4/

Bruno Hug 13 mars 2012 - 16:00 - Répondre

Bonjour Baptiste

Il y a effectivement des choses à considérer, mais dans le cadre d’un SEO qui a déjà mis en place des cache, minification et autres, c’est toujours très intéressant de tester d’autres serveurs web.

Pour la nouvelle version d’Apache, aucun mot car je n’étais pas au courant ;-) C’est maintenant fait, les lecteurs sauront qu’elle existe

Kambodia 08 avril 2012 - 4:09 - Répondre

j’hésite encore à passer sur Lighttpd. Le souci c’est le temps de faire des tests et les modifications nécessaires. Quand ce n’est pas son coeur de métier, le temps passé au aussi un cout :)