Nginx prononcé engine x
est un serveur HTTP et proxy inverse gratuit, open source et hautes performances chargé de gérer la charge de certains des plus grands sites sur Internet.
Nginx peut être utilisé comme serveur Web autonome et comme proxy inverse pour Apache et d'autres serveurs Web.
Comparé à Apache, Nginx peut gérer un grand nombre de connexions simultanées et a une empreinte mémoire plus petite par connexion.
Ce tutoriel vous apprendra comment installer et gérer Nginx sur votre machine CentOS 7.
Prérequis #
Avant de commencer le didacticiel, assurez-vous que vous êtes connecté en tant qu'utilisateur avec les privilèges sudo et qu'Apache ou tout autre service ne s'exécute pas sur le port 80 ou 443.
Installation de Nginx sur CentOS #
Suivez les étapes ci-dessous pour installer Nginx sur votre serveur CentOS :
-
Les packages Nginx sont disponibles dans les référentiels EPEL. Si vous n'avez pas déjà installé le référentiel EPEL, vous pouvez le faire en tapant :
sudo yum install epel-release
-
Installez Nginx en tapant la commande yum suivante :
sudo yum install nginx
Si c'est la première fois que vous installez un package à partir du référentiel EPEL, yum peut vous demander d'importer la clé GPG EPEL :
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 Importing GPG key 0x352C64E5: Userid : "Fedora EPEL (7) <[email protected]>" Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5 Package : epel-release-7-9.noarch (@extras) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 Is this ok [y/N]:
Si c'est le cas, tapez
y
et appuyez surEnter
. -
Une fois l'installation terminée, activez et démarrez le service Nginx avec :
sudo systemctl enable nginx
sudo systemctl start nginx
Vérifiez l'état du service Nginx avec la commande suivante :
sudo systemctl status nginx
Le résultat devrait ressembler à ceci :
● nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2018-03-12 16:12:48 UTC; 2s ago Process: 1677 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 1675 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 1673 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 1680 (nginx) CGroup: /system.slice/nginx.service ├─1680 nginx: master process /usr/sbin/nginx └─1681 nginx: worker process
-
Si votre serveur est protégé par un pare-feu, vous devez ouvrir à la fois HTTP (
80
) et HTTPS (443
) ports.Utilisez les commandes suivantes pour ouvrir les ports nécessaires :
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
-
Pour vérifier votre installation Nginx, ouvrez
http://YOUR_IP
dans le navigateur de votre choix, et vous verrez la page d'accueil par défaut de Nginx comme indiqué dans l'image ci-dessous :
Gérer le service Nginx avec systemctl #
Vous pouvez gérer le service Nginx de la même manière que n'importe quelle autre unité systemd.
Pour arrêter le service Nginx, exécutez :
sudo systemctl stop nginx
Pour le relancer, tapez :
sudo systemctl start nginx
Pour redémarrer le service Nginx :
sudo systemctl restart nginx
Rechargez le service Nginx après avoir apporté quelques modifications à la configuration :
sudo systemctl reload nginx
Si vous souhaitez désactiver le service Nginx pour qu'il démarre au démarrage :
sudo systemctl disable nginx
Et pour le réactiver :
sudo systemctl enable nginx
Structure et meilleures pratiques du fichier de configuration Nginx #
- Tous les fichiers de configuration Nginx se trouvent dans le répertoire
/etc/nginx/
répertoire. - Le fichier de configuration principal de Nginx est
/etc/nginx/nginx.conf
. - Pour faciliter la maintenance de la configuration Nginx, il est recommandé de créer un fichier de configuration distinct pour chaque domaine.
- Les nouveaux fichiers de bloc de serveur Nginx doivent se terminer par
.conf
et être stocké dans/etc/nginx/conf.d
annuaire. Vous pouvez avoir autant de blocs de serveur que vous le souhaitez. - C'est une bonne idée de suivre une convention de dénomination standard, par exemple si votre nom de domaine est
mydomain.com
alors votre fichier de configuration doit être nommé/etc/nginx/conf.d/mydomain.com.conf
- Si vous utilisez des segments de configuration reproductibles dans vos blocs de serveur de domaines, il est judicieux de créer un répertoire nommé
/etc/nginx/snippets
refactoriser ces segments en extraits et inclure le fichier d'extrait dans les blocs de serveur. - Fichiers journaux Nginx (
access.log
eterror.log
) sont situés dans le/var/log/nginx/
annuaire. Il est recommandé d'avoir unaccess
différent eterror
fichiers journaux pour chaque bloc de serveur. - Vous pouvez définir le répertoire racine des documents de votre domaine à l'emplacement de votre choix. Les emplacements les plus courants pour la racine Web incluent :
/home/<user_name>/<site_name>
/var/www/<site_name>
/var/www/html/<site_name>
/opt/<site_name>
/usr/share/nginx/html