Nginx est un serveur HTTP et proxy inverse open source hautes performances qui alimente 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 décrira les étapes pour installer et gérer Nginx sur une machine Debian.
Prérequis #
Avant de commencer le didacticiel, assurez-vous que vous êtes connecté en tant qu'utilisateur avec les privilèges sudo.
Installer Nginx #
L'installation est assez simple. Suivez les étapes ci-dessous pour installer Nginx sur votre système Debian :
-
Mettre à jour l'index des packages :
sudo apt update
-
Installez le package Nginx :
sudo apt install nginx
-
Le service Nginx démarrera automatiquement une fois le processus d'installation terminé. Vous pouvez le vérifier en exécutant le
curl
suivant commande :curl -I 127.0.0.1
HTTP/1.1 200 OK Server: nginx/1.10.3 Date: Mon, 27 Aug 2018 22:29:02 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Mon, 27 Aug 2018 22:27:54 GMT Connection: keep-alive ETag: "5b847aea-264" Accept-Ranges: bytes
Ajuster le pare-feu #
Si vous utilisez iptables pour filtrer les connexions à votre système, vous devrez ouvrir HTTP (80
) et HTTPS (443
) ports.
Ouvrez les ports nécessaires en lançant la commande suivante :
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Gérer le service Nginx avec systemctl #
Vous pouvez utiliser le systemctl
commande pour gérer le service Nginx, comme toute 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
Désactivez le service Nginx pour démarrer 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 #
- Les fichiers de configuration Nginx sont stockés dans le répertoire
/etc/nginx
répertoire. - Le fichier de configuration principal de Nginx est
/etc/nginx/nginx.conf
. - Les fichiers de configuration du bloc de serveur (vhost) sont stockés dans
/etc/nginx/sites-available
annuaire. Les fichiers de configuration trouvés dans ce répertoire ne sont pas utilisés par Nginx sauf s'ils sont liés au/etc/nginx/sites-enabled
répertoire. - L'activation des blocs de serveur se fait en créant un lien symbolique (un pointeur) à partir des sites du fichier de configuration dans un
sites-available
répertoire vers lesites-enabled
répertoire. - Pour écrire un code plus maintenable, il est judicieux de suivre une convention de dénomination standard. Par exemple, si votre nom de domaine est
mydomain.com
alors le fichier de configuration doit être nommé/etc/nginx/sites-available/mydomain.com.conf
. - Le
/etc/nginx/snippets
Le répertoire contient des extraits de configuration qui peuvent être inclus dans les fichiers de bloc du serveur. Si vous utilisez des segments de configuration reproductibles, vous pouvez refactoriser ces segments en extraits de code et inclure le fichier d'extrait de code 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>