Présentation

Apache est un des permiers serveurs web à avoir vu le jour, il est aujourd'hui utilisé par environ 50% des sites (source Netcraft) et a largement fait ses preuves. Mais aujourd'hui le World Wild Web a explosé, et il n'est pas rare qu'un site doive gérer plus de 10000 utilisateurs simultanément, il s'agit de ce que l'on appelle le problème "C10k" (C plus client, 10k pour 10000). L'utilisation des processus faite par Apache est très gourmande, c'est pourquoi de nouvelles alternatives ont vu le jour. Nginx est l'une d'entre elles.

logo nginx

Basé sur la programation évènementielle asynchrone, Nginx minimise le nombre d'appels systèmes, en particulier, tout ce qui est lié à la mémoire. Tout comme Apache, Nginx est modulaire et dispose d'un grand nombre de fonctionnalités : authentification HTTP, compression Gzip, proxying, FastCGI, url-rewriting, localisation GeoIP… (voir la liste des modules).

​Installation et configuration 

Une commande classique fera l'affaire : "apt-get install nginx"
Cet artcile n'étant pas un tutoriel, mais plutôt une présentation, je vous laisse vous référer à la documentation officielle (RTFM  :p) pour la configuration.

Fonctionnement avec PHP

Nginx fonctionne avec le mode FPM de PHP (entretien en permanence un certain nombre de process).
Vous pourez l'installer à l'aide de la commande : apt-get install php5-fpm
Voici le lien vers différents exemples de configuration : http://wiki.nginx.org/Configuration

Conclusion

Ces dernières années, Nginx tend à s'imposer de plus en plus sur le marché. Voici, la répartition globale des serveurs web entre 1995 et 2013 (source Netcraft) :

En plus d'être un serveur web, Nginx peut également être configuré comme reverse proxy pour gérer le cache statique et également répartir la charge sur différents frontaux (load balancing). Contrairement à Varnish notamment, Nginx gère le SSL.

Si vous n'avez encore jamais eu l'occasion de le tester, il est grand temps de vous y mettre ! De simples tests de performances avec Apache Benchmark (ab) vous permettront de faire une rapide comparaison entre Nginx et Apache.