Nginx fait partie des outils à considérer très sérieusement aujourd’hui dans lesarchitectures Web performantes. Nginx peut jouer plusieurs rôles : reverse proxy,load balancer ou encore serveur Web complet.
Nginx est particulièrement réputé pour ses performances, et il est vrai que la consommation des ressources CPU et RAM de nginx s’affole rarement.
Par le passé, j’utilisais nginx uniquement pour servir directement les fichiers statiques (CSS, images) et en tant que reverse proxy d’Apache pour les pages dynamiques (PHP).
Mais aujourd’hui, je l’utilise en tant que serveur Web principal en l’associant à PHP5-FPM. Et les performances sont au rendez-vous, je ne regrette pas l’abandon d’Apache2.
Voyons comment installer Nginx, en le compilant directement depuis la source, les versions disponibles sur les dépôts Debian étant plutôt anciennes (même si les choses se sont arrangées avec Debian Squeeze).
Préparatifs et téléchargement de nginx
La compilation de nginx nécessite quelques pré-requis que voici :
On crée ensuite les répertoires destinés à accueillir les fichiers de nginx :
On note au passage la création de deux répertoires : sites-available et sites-enabledpour respecter la même structure que sur Apache2 pour l’activation et la désactivation des sites (qui est plutôt pratique).
On se place ensuite dans un répertoire temporaire pour télécharger la dernière version de nginx :
Et on lance le téléchargement des sources :
Compilation de nginx
On décompresse l’archive et on se place dans le répertoire décompressé :
On configure alors les paramètres de compilation :
On note ici que l’on choisit les répertoires des fichiers de configuration, des logs… et les modules à intégrer ou à ignorer. Vous pouvez consulter la liste des modules standards et ceux disponibles en supplément ici : http://wiki.nginx.org/Modules.
Si un des modules vous intéresse, pensez à l’intégrer dès maintenant, après il vous faudra recompiler nginx pour y avoir accès.
Si un des modules vous intéresse, pensez à l’intégrer dès maintenant, après il vous faudra recompiler nginx pour y avoir accès.
Ici, j’ai désactivé les modules de mail que je n’utilise pas.
On peut ensuite lancer la compilation :
Nginx devrait alors être installé.
Script de démarrage
Il manque encore quelques éléments pour que l’installation soit pleinement fonctionnelle, notamment un fichier de démarrage.
Copier le contenu suivant dans le fichier /etc/init.d/nginx :
Donner ensuite les droits au script, et le configurer pour le démarrage :
Rotation des logs
Il faut également prévoir la configuration de logrotate pour la rotation des logs (sinon la taille des fichiers pourrait vite devenir trop importante).
Copier le contenu suivant dans le fichier /etc/logrotate.d/nginx :
On attribut les droits au script :
Scripts d’activation et de désactivation des sites
Dernière chose : vous connaissez peut-être les commandes a2ensite et a2dissite qui permettent d’activer et désactiver les sites sous Apache2. Pour faire la même chose sous nginx, vous trouverez sur cette page les scripts nginx_ensite et nginx_dissite qu’il faudra copier dans /usr/bin :
Le script nginx_dissite est en fait un lien vers le script nginx_ensite.
Pour pouvoir utiliser ces deux scripts correctement, on ajoute également la complétion automatique sous bash qui nous proposera les sites disponibles en appuyant sur la touche « tab » du clavier à la suite de la commande :
Il faudra également prendre en compte le chemin /etc/nginx/sites-enabled dans la configuration de nginx. Editer le fichier /etc/nginx/nginx.conf et y rajouter la ligne suivante dans le bloc http :
Et voilà! Vous avez tout ce qu’il faut pour commencer à travailler sur nginx. Nous verrons dans l’article suivant comment installer et utiliser PHP5-FPM à travers notamment les balises comme fastcgi_pass sous nginx.
Aucun commentaire:
Enregistrer un commentaire