nginx

nginx
nginx
Logo de Nginx
Développeur Igor Sysoev
Dernière version 1.0.8 (1er octobre 2011) [+/-]
Version avancée 1.1.5 (5 octobre 2011) [+/-]
Environnement Linux
Unix
Windows ...
Type Serveur HTTP
Licence Licence de type BSD
Site web nginx.org

nginx [engine x] est un logiciel de serveur Web (ou HTTP) écrit par Igor Sysoev, dont le développement a débuté en 2002 pour les besoins d'un site russe à très fort trafic. Une partie de la documentation a été traduite du russe vers l'anglais.

Ses sources sont disponibles sous une licence de type BSD.

Sommaire

Particularités

Serveur asynchrone

nginx est un serveur asynchrone par opposition aux serveurs synchrones où chaque requête est traitée par un processus dédié. Au lieu d'exploiter une architecture parallèle et un multiplexage temporel des tâches par le système d'exploitation, nginx utilise les changements d'état pour gérer plusieurs connexions en même temps ; le traitement de chaque requête est découpé en de nombreuses mini-tâches et permet ainsi de réaliser un multiplexage efficace entre les connexions. Afin de tirer parti des ordinateurs multiprocesseurs, plusieurs processus peuvent être démarrés. Ce choix d'architecture se traduit par des performances très élevées, mais également par une charge et une consommation de mémoire particulièrement faibles comparativement aux serveurs HTTP classiques, tels qu'Apache.

Modularité

nginx est très modulaire : un noyau minimal et des modules, nombreux, venant compléter les fonctions de base. Chaque module peut agir comme un filtre sur le contenu en entrée, en sortie ou intermédiaire (proxy) par le biais de nombreuses callbacks. Ainsi, à titre d'exemple, un contenu dynamique peut être compressé à la volée par le module « gzip » avant envoi.

Optimisations

Le noyau s'appuie sur des structures de données minimales, mais optimales, visant à réduire le nombre d'appels système, en particulier pour tout ce qui a trait à l'allocation de mémoire. Différents mécanismes de signalisation peuvent être utilisés afin d'exploiter au mieux le système d'exploitation (par exemple : epoll sous Linux et kqueue sous BSD). L'architecture asynchrone soulage l'ordonnanceur du système d'exploitation et favorise l'utilisation des caches du ou des processeurs.

Divers

Un processus maître contrôle le ou les processus serveurs, de cette façon il est possible de changer la configuration ou de mettre à jour le fichier exécutable du serveur sans avoir à arrêter le service HTTP.

Plate-formes supportées

nginx fonctionne sous les systèmes d'exploitation Linux, BSD, Mac OS X et Solaris ; une version native existe depuis peu (à partir de la version avancée 0.7.52) pour Windows.

Utilisations

Outre le fait d'être un serveur HTTP, nginx peut être configuré pour être un proxy inverse Web et un serveur proxy de messagerie électronique (IMAP / POP3). L'utilisation la plus fréquente de nginx est de le configurer comme un serveur Web classique pour servir des fichiers statiques et comme un proxy pour les requêtes dynamiques typiquement acheminées en utilisant une interface FastCGI vers un ou des serveurs applicatifs avec un mécanisme de répartition de charge.

nginx est également capable de diffuser, selon le même principe que lighttpd avec mod_flv_streaming, du contenu vidéo par streaming vers un lecteur Flash sans avoir à recourir à Flash Media Server. Pour cela, il existe un module ngx_http_flv_module de streaming de fichier vidéo flv et plusieurs modules de streaming qui peuvent diffuser une vidéo encodée en H.264.

Il est aussi très utilisé en production pour servir des applications en Ruby on Rails grâce au module Phusion Passenger[1]. La plupart des sites en Ruby on Rails à fort trafic utilisent nginx (par exemple basecamp).

Popularité

nginx était peu connu, excepté en Russie, avant qu'Aleksandar Lazic ne commence la traduction anglaise en 2006. Depuis, le nombre de domaines gérés par nginx est en constante augmentation.

En juin 2007, Google le considérait comme le 3e serveur (4% d'utilisation) parmi les serveurs web les plus fréquentés, après Apache (66%) et IIS de Microsoft (23%)[2].

Selon Netcraft, en décembre 2008, avec plus de 3,3 millions de domaines, nginx apparaît pour la première fois, au rang de quatrième serveur HTTP[3] le plus utilisé au monde (juste devant lighttpd). Cette tendance est confirmée en mars 2009 : Apache 66,65%, IIS 18,68% et nginx 3,06%[4] (alors que lighttpd n'obtient plus que 0,99%, et est aussi dépassé par Google Web Server à 1,56%). En novembre 2010, nginx est d'après Netcraft le troisième serveur le plus utilisé sur les sites web mondiaux avec 6,04% de part de marché, derrière les 22,70% d'IIS et les 59,36% d'Apache[5]. Ces chiffres restent globalement stables en juillet 2011 : 64,66% pour Apache, 16,82% pour IIS, 6,55% pour nginx, 4,61% pour Google Web Server[6].

Notes et références

Voir aussi

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article nginx de Wikipédia en français (auteurs)

Игры ⚽ Нужно сделать НИР?

Regardez d'autres dictionnaires:

  • nginx — Entwickler Igor Sysoev Aktuelle Version 1.0.9 (stable)[1] (1.& …   Deutsch Wikipedia

  • nginx — Тип Веб сервер, почтовый прокси сервер Автор Игорь Сысоев Разработчик NGINX, Inc. Написана на C Операционная система …   Википедия

  • Nginx — Тип Веб сервер, почтовый прокси сервер Разработчик Игорь Сысоев ОС Unix‐подобные, Windows …   Википедия

  • nginx — Original author(s) Igor Sysoev Developer(s) Igor Sysoev Initial release October 4, 2004; 7 years ago ( …   Wikipedia

  • Nginx — Développeur Igor Sysoev Dernière version 0.7.61 (le 22  …   Wikipédia en Français

  • Nginx — Entwickler: Igor Sysoev Aktuelle Version: 0.6.35 (26. Januar 2009) Betriebssystem: Unix Derivate Kategorie: Webserver …   Deutsch Wikipedia

  • Nginx — Desarrollador Igor Sysoev http://nginx.org/ Informac …   Wikipedia Español

  • Nginx — Infobox Software name = nginx caption = author = developer = Igor Sysoev released = latest release version = 0.6.32 latest release date = July 7, 2008 latest preview version = 0.7.16 latest preview date = Sep 08, 2008 operating system = Unix like …   Wikipedia

  • nginx — noun a high speed Web server/reverse proxy and email proxy …   Wiktionary

  • C10k problem — Le c10k problem[note 1] que l on pourrait traduire en français par le problème des dix mille connexions simultanées, est un code numérique utilisé pour exprimer la limitation que la plupart des serveurs ont en termes de connexions réseaux. Cette… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”