configuration d'un serveur nginx - abambadev/http_theme GitHub Wiki

SERVEUR NGINX

1-Definition

Le logiciel de serveur NGINX, développé par le programmeur Igor Sysoev, a été distribué en 2004. L’attention était à l’époque centrée sur le besoin d’un serveur de haute performance, pouvant servir simultanément autant de clients Web que possible, et qui ne soit pas trop gourmand en ressources. Etant donné la propagation croissante de son serveur Web, NGINX a depuis développé, en parallèle de la version libre gratuite, une version payante nommée NGINX Plus avec une assistance intégrée et des fonctionnalités supplémentaires comme un équilibreur de charge, ou load balancer (serveur/know-how/load-balancer-repartitionde-charge-sur-un-serveur/) en anglais. NGINX présente, tout comme Apache, une interface modulaire. Cela signifie que différentes fonctions sont proposées sur les modules correspondants, que les administrateurs choisissent d’activer ou non.
Vous avez par exemple le choix entre ces différentes fonctionnalités :

  1. Application Acceleration (accélération de l’application) : permet un chargement plus rapide des contenus.
  2. Reverse Proxying (proxy inverse) : permet d’utiliser NGINX comme proxy inverse (http, TCP, UDP) pour
  3. l’accélération des chargements Web ou l’utilisation d’un proxy email (IMAP, POP3, SMTP).
  4. Chiffrement TLS : permet un échange de données sécurisé.
  5. Gestion de la bande passante : associe la bande passante optimale pour chaque service proposé.
  6. Load Balancing (équilibreur de charge) : répartit les demandes de manière à décharger le serveur principal.
  7. Videostreaming (streaming vidéo) : offre une haute performance pour le streaming de fichiers MP4 et FLV

2-Avantages et Inconvenients

 ### 2.1-Avantages

Gère un grand nombre de connexions simultanées. Nginx traite plus de 10000 connexions simultanées alors qu’Apache n’est limité qu’à seulement 256 connexions simultanées.

  • Extrêmement rapide grâce au pattern REACTOR
  • Léger grâce à son modèle Thread Driven
  • Configuration plus facile que celle d’Apache car seuls les paramètres utiles sont disponibles
  • Un serveur proxy inverse pour le protocole HTTP, HTTPS, SMTP, POP3 et IMAP
  • Un équilibreur de charge et un cache HTTP
  • Un proxy de frontend pour Apache et d'autres serveurs Web, exemple la combinaison entre la flexibilité
  • d'Apache et la bonne performance de contenu statique de NGINX
  • NGINX est connu pour sa haute performance, sa stabilité, son riche ensemble de fonctionnalités, sa
  • configuration simple et sa faible consommation de ressources.

    2.1-Inconvenients

  • Moins configurable qu’Apache
  • Fonctionnalités limités - Impossibilité de rajouter des modules via ligne de commande.
  • Il faut nécessairement recompiler Nginx pour avoir les modules souhaités
  • Un hébergement partagé de domaines protégés par un mot de passe ou attribué en interne peut être difficile à réaliser.
  • Les réécritures (rewriting) que cela implique ne peuvent qu’être mises dans le dossier principal de configuration et le serveur doit être relancé par la suite.
  • Des erreurs peuvent avoir des conséquences sur tous les acteurs d’un hébergement partagé. Alors qu’un serveur Apache apporte quant à lui un avantage non négligeable, celui d’attribuer des fichiers .htaccess individuels séparés.

3-Installation et Configuration

3.1 Windows

>>Installation sous Windows

Téléchargeons Nginx et plaçons le dans un dossier de notre choix (D:\Nginx par exemple) Afin de spécifier le "DocumentRoot" voulu (répertoire racine des fichiers Web), Il faut modifier le fichier nginx/conf/nginx.conf afin que la section server (listen 80) possède l'emplacement voulu.
location / {
root D:\gitlocal\web; # <-- ligne modifiée
index index.html index.htm;
}


>>Configuration sous Windows

Il faut tout d’abord télécharger et installer PHP. Ensuite, rééditer le fichier nginx.conf et modifier les lignes en commentaires qui sont en rapport avec PHP FastCGI.
location ~ .php$ {
root D:\gitlocal\web; # <-- Ligne modifiée
fastcgi_pass 127.0.0.1:9123;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi.conf; # <-- Ligne modifiée
}

Démarrer PHP et Nginx pour terminer

3.2-Linux

>>Installation sous Linux

Avant tout manipulation, il faut se loger en utilisateur root

  1. Sous Debian Weezy, pour avoir la dernière version stable de Nginx il faut d’abord ajouter les sources du dépôt DotDeb et ensuite récupérer la clé pour accéder au dépôt
    $ vim /etc/apt/sources.list
  2. Et y ajouter les lignes suivantes :
    Dev http://packages.dotdeb.org wheezy all
    Dev-src http://packages.dotdeb.whezzy all

  3. Récupération de la clé de dépôt
    $ wget http://www.dotdeb.org/dotdeb.gpg
    $ cat dotdeb.gpg | sudo apt-key add -

  4. Nous pouvons ensuite installer Nginx : commande d’installation en linux
    $ apt-get update
    $ apt-get install nginx

  5. Démarrage de Nginx
    $ service nginx start
  6. La page de démarrage de Nginx se trouve dans le dossier /usr/share/nginx/html.

    >>Configuration sous Linux

    La configuration de Nginx est morcelée en plusieurs fichiers qui se situent tous dans le dossier /etc/nginx :
  • Le fichier nginx.conf contient la configuration générale
  • Le fichier conf.d/*.conf (ou sites-enabled/.conf) contient la configuration des différents ‘‘servers’’
⚠️ **GitHub.com Fallback** ⚠️