Répartition de l’utilisation des serveurs web, focus sur Nginx

Le serveur Web le plus utilisé à travers le monde est sans conteste Apache. Avec plus de 60% des sites Web propulsés par lui (191 Millions), Apache truste la première position depuis 1996, date à laquelle il prit la place de celui qui lui aura servi de base : NCSA HTTPd.

IIS est le second au palmarès des plus utilisés depuis la même période. Décliné depuis la version 1 sous windows NT 3.51 et jusqu’à la version 7.5 sous 2008R2, IIS comptabilise près de 19% des moteurs (58 Millions).

Au top 5 des serveurs, établi en Mai 2011 par Netcraft, et si on fait abstraction des 5% de serveurs Google, qui ne sont donc utilisés que par la firme pour ses applications ( et les AppEngine ), on retrouve deux serveurs :  lighthttpd (0.6%) et Nginx avec 7.65% (22M) .

Répartition de l'utilisation des serveurs Web de 1995 à 2011 - Netcraft

A propos de Nginx.

Nginx est un serveur Web Open Source (BSD), renommé pour ses performances, sa stabilité, sa configuration simplifiée et sa petite demande en ressources, qui peut être aussi utilisé comme reverse proxy HTTP, voire proxy IMAP ou POP.

Igor Sysoev a commencé son développement en 2002, pour servir un site russe à fort trafic, et la première mouture publique est sortie en 2004.  Nginx a été développé dans l’optique de répondre au problème C10K, ou comment gérer plus de 10000 connexions simultanées par un seul serveur…

Le problème C10K part du postulat qu’avec les ressources d’un serveur moyen et à moindre frais d’aujourd’hui ( processeur de 1GHz, 2Go de RAM et une connection 1Gbps ) il devrait être possible de servir 10000 ou même 20000 clients dans un même temps.

Voyons, pour 20000 clients cela fait dans les 50KHz, 100Ko de mémoire et 50Kbps par client. Apparemment suffisamment pour délivrer les quelques 4Ko d’une page type et les envoyer sur le réseau toutes les secondes, non ?

Pour ça, à la différence des autres serveurs Web, Nginx n’utilise pas un processus dédié pour chaque requête. A la place, il utilise une architecture événementielle ou asynchrone, qui découpe chaque requête en de multiples tâches, tirant ainsi profit des capacités des ordinateurs multiprocesseurs tout en utilisant de plus petites, mais plus nombreuses et prévisibles quantités de mémoire.

Preuve de son efficacité, Nginx est utilisé par des sites très connus et à fort trafic comme WordPress ( pour la repartition de charge ) , Github et SourceForge.

Cette entrée a été publiée dans blog et taggé . Ajoutez le permalien à vos favoris.