Nginx est un serveur Web et Reverse Proxy léger et rapide capable de gérer des sites à très fort trafic. Son architecture lui permet de traîter de nombreuses tâches en même temps tout en ayant une gestion très optimisée de la mémoire. Bref, on est assez loin de la relative gourmandise de servers webs tel qu'Apache.
Nginx est construit autour d'un noyau minimalcomplété par des modules. Ce noyau est particulièrement optimisé pour minimiser les appels au système, il dispose notamment de sa propre gestion mémoire.
Dans cet article, nous allons voir coimment installer Nginx sur la distribution linux CentOS 7.
Pré-requis
Nginx est disponible dans le dépôt EPEL. Si il n'est pas déjà installé, vous pouvez le faire avec la commande suivante en root.
sudo yum install epel-release
Installation de Nginx
Une fois le dépôt EPEL installé, il suffit de lancer la commande suivante pour installer Nginx.
sudo yum install nginx
Démarrage de Nginx
Nous allons maintenant lancer deux commandes. La première va activer Nginx pour qu'il soit lancé à chaque démarrage du système. La deuxième va lancer Nginx afin que nous puissions commencer à l'utiliser sans avoir à redémarrer la machine.
sudo systemctl enable nginx sudo systemctl start nginx
Configuration du firewall
Nous devons également configurer le firewall de notre machine pour laisser passer les requetes http et https.
sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --reload
Configuration de SELinux
Si votre serveur NGINX doit être utilisé comme reverse proxy, il faut ajouter une exception aux règles de sécurité de SELinux :
sudo setsebool -P httpd_can_network_connect 1
Résultat final
Ouvrez maintenant votre navigateur web favoris et rendez-vous à l'adresse ip de votre nouveau site web.
Configuration de Nginx
Le dossier racine par défaut de notre serveur web est /usr/share/nginx/html. Tous les fichiers qui seront placés dans ce dossier seront servis par Nginx.
La configuration du site web par défaut de Nginx est définie dans le fichier /etc/nginx/conf.d/default.conf.
La configuration de chaque sous-serveur web (virtual host si on emploi la terminologie définie par Apcahe) devra être définie dans son propre fichier de configuration et placé dans le dossier /etc/nginx/conf.d. Tous les fichiers avec l'extension .conf dans ce dossier sera chargé par Nginx au démarrage de celui-ci.
La configuration du serveur web lui-même est définie dans le fichier /etc/nginx/nginx.conf. Dans ce fichier, vous pouvez définir quelles ressources seront allouées à votre serveur Nginx.