Introduction
Nginx est un serveur web gratuit et open-source utilisé pour héberger des sites Web et des applications de toutes tailles. Le logiciel est connu pour son faible impact sur les ressources mémoire, sa grande évolutivité et son architecture modulaire et événementielle qui peut offrir des performances sécurisées et prévisibles. Plus qu’un simple serveur web, Nginx fonctionne également comme un répartiteur de charge, un cache HTTP et un proxy inverse.
Dans ce guide, vous allez installer Nginx sur votre serveur Debian 10.
Prérequis
Avant de commencer ce guide, vous devez disposer d’un utilisateur régulier, non root, avec des privilèges sudo configurés sur votre serveur. Vous devez également disposer d’un pare-feu actif. Vous pouvez apprendre à configurer cela en suivant notre guide de configuration initiale du serveur pour Debian 10.
Étape 1 – Installation de Nginx
Nginx est disponible dans les dépôts de logiciels par défaut de Debian, ce qui permet de l’installer à l’aide des outils de gestion de paquets conventionnels.
Tout d’abord, mettez à jour votre index local de paquets pour refléter les derniers changements en amont :
Ensuite, installez le paquet nginx
:
Confirmez l’installation en entrant O
, puis appuyez sur Entrée
pour procéder. apt
installera alors Nginx ainsi que toutes les dépendances nécessaires sur votre serveur.
Étape 2 – Ajustement du pare-feu
Avant de tester Nginx, il est nécessaire de modifier les paramètres du pare-feu pour permettre l’accès extérieur aux ports web par défaut. En supposant que vous avez suivi les instructions dans les prérequis, vous devriez avoir un pare-feu UFW configuré pour restreindre l’accès à votre serveur.
Pendant l’installation, Nginx s’enregistre auprès de UFW pour fournir quelques profils d’application qui peuvent être utilisés pour autoriser ou désactiver l’accès à Nginx via le pare-feu.
Listez les profils d’application ufw
en tapant :
Vous devriez obtenir une liste des profils d’application :
OutputAvailable applications:
...
Nginx Full
Nginx HTTP
Nginx HTTPS
...
Comme vous pouvez le voir, il y a trois profils disponibles pour Nginx :
- Nginx complet : Ce profil ouvre à la fois le port
80
(trafic web normal, non crypté) et le port443
(trafic crypté TLS/SSL) - Nginx HTTP : Ce profil ouvre uniquement le port
80
(trafic web normal, non crypté) - Nginx HTTPS: Ce profil n’ouvre que le port
443
(trafic chiffré TLS/SSL)
Il est recommandé d’activer le profil le plus restrictif qui permettra toujours le trafic que vous avez configuré. Étant donné que vous n’avez pas encore configuré TLS/SSL pour votre serveur dans ce guide, vous devrez uniquement autoriser le trafic pour HTTP sur le port 80
.
Vous pouvez l’activer en tapant :
Vous pouvez vérifier le changement en tapant :
Ce qui apparaît sont les flux de trafic HTTP autorisés dans la sortie :
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
Étape 3 – Vérification de votre serveur Web
À la fin du processus d’installation, Debian 10 démarre Nginx. Le serveur Web devrait déjà être opérationnel.
Vous pouvez vérifier avec le système d’initialisation systemd
pour vous assurer que le service fonctionne en tapant :
Output● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-06-28 18:42:58 UTC; 49s ago
Docs: man:nginx(8)
Main PID: 2729 (nginx)
Tasks: 2 (limit: 1167)
Memory: 7.2M
CGroup: /system.slice/nginx.service
├─2729 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2730 nginx: worker process
Cette sortie révèle que le service a démarré avec succès. Cependant, la meilleure façon de le tester est de demander réellement une page à Nginx.
Vous pouvez accéder à la page d’accueil par défaut de Nginx pour confirmer que le logiciel fonctionne correctement en naviguant vers l’adresse IP de votre serveur. Si vous ne connaissez pas l’adresse IP de votre serveur, vous pouvez taper ceci à l’invite de commande de votre serveur :
Vous obtiendrez quelques lignes en retour. Vous pouvez essayer chacune dans votre navigateur web pour voir si elles fonctionnent.
Lorsque vous avez l’adresse IP de votre serveur, entrez-la dans la barre d’adresse de votre navigateur :
http://your_server_ip
La page d’accueil par défaut de Nginx devrait apparaître dans votre navigateur Web :
Cette page est incluse avec Nginx pour vous montrer que le serveur fonctionne correctement.
Étape 4 – Gestion du processus Nginx
Maintenant que votre serveur Web est opérationnel, vous pouvez examiner quelques commandes de gestion de base.
Pour arrêter votre serveur Web, tapez :
Pour démarrer le serveur Web lorsqu’il est arrêté, tapez :
Pour arrêter puis redémarrer le service, tapez :
Si vous effectuez des modifications de configuration, Nginx peut souvent recharger sans interrompre les connexions. Pour ce faire, tapez :
Par défaut, Nginx est configuré pour démarrer automatiquement lorsque le serveur démarre. Si ce n’est pas ce que vous voulez, vous pouvez désactiver ce comportement en tapant :
Pour réactiver le service au démarrage, vous pouvez taper :
Étape 5 – Configuration des blocs serveur (facultatif)
Lorsque vous utilisez le serveur web Nginx, les blocs serveur (similaires aux hôtes virtuels dans Apache) peuvent être utilisés pour encapsuler les détails de configuration et héberger plusieurs domaines sur un seul serveur. Dans les commandes suivantes, remplacez votre_domaine
par votre propre nom de domaine. Pour en savoir plus sur la configuration d’un nom de domaine avec DigitalOcean, consultez notre introduction à DigitalOcean DNS.
Nginx sur Debian 10 a un bloc serveur activé par défaut qui est configuré pour servir des documents à partir d’un répertoire situé à /var/www/html
. Bien que cela fonctionne bien pour un seul site, cela peut devenir ingérable si vous hébergez plusieurs sites. Au lieu de modifier /var/www/html
, créez une structure de répertoires à l’intérieur de /var/www
pour le site web votre_domaine
, en laissant /var/www/html
en place comme répertoire par défaut à servir si une demande client ne correspond à aucun autre site.
Créez le répertoire pour votre_domaine
comme suit, en utilisant le drapeau -p
pour créer les répertoires parents nécessaires:
Ensuite, attribuez la propriété du répertoire avec la variable d’environnement $USER
, qui devrait faire référence à votre utilisateur système actuel:
Les permissions de votre racine web devraient être correctes si vous n’avez pas modifié la valeur de votre umask
, mais vous pouvez vous en assurer en tapant:
Ensuite, créez une page index.html
d’exemple en utilisant nano
ou votre éditeur de texte préféré:
À l’intérieur, ajoutez le HTML d’exemple suivant:
<html>
<head>
<title>Welcome to your_domain</title>
</head>
<body>
<h1>Success! Your Nginx server is successfully configured for <em>your_domain</em>. </h1>
<p>This is a sample page.</p>
</body>
</html>
Enregistrez et fermez le fichier lorsque vous avez terminé. Dans nano
, vous pouvez le faire en appuyant sur CTRL + X
, puis Y
, et ensuite ENTER
.
Pour que Nginx serve ce contenu, vous devez créer un bloc serveur avec les directives correctes qui pointent vers votre propre répertoire web. Au lieu de modifier directement le fichier de configuration par défaut, créez-en un nouveau à l’emplacement /etc/nginx/sites-available/votre_domaine
:
Ajoutez le bloc de configuration suivant, similaire à celui par défaut, mais mis à jour pour votre nouveau répertoire et nom de domaine:
server {
listen 80;
listen [::]:80;
root /var/www/your_domain/html;
index index.html index.htm index.nginx-debian.html;
server_name your_domain www.your_domain;
location / {
try_files $uri $uri/ =404;
}
}
Remarquez la configuration root
mise à jour vers votre nouveau répertoire et le server_name
vers votre nom de domaine. N’oubliez pas de remplacer votre_domaine
par votre véritable nom de domaine.
Ensuite, activez ce bloc serveur en créant un lien symbolique vers votre fichier de configuration personnalisé à l’intérieur du répertoire sites-enabled
, que Nginx lit au démarrage:
Votre serveur dispose désormais de deux blocs serveurs activés et configurés pour répondre aux demandes en fonction de leurs directives listen
et server_name
(vous pouvez en savoir plus sur la manière dont Nginx traite ces directives ici):
votre_domaine
: Répondra aux demandes pourvotre_domaine
etwww.votre_domaine
.default
: Répondra à toutes les demandes sur le port80
qui ne correspondent pas aux deux autres blocs.
Pour éviter un éventuel problème de mémoire de hachage de seau qui peut survenir en ajoutant des noms de serveurs supplémentaires à votre configuration, il est nécessaire d’ajuster une seule valeur dans le fichier /etc/nginx/nginx.conf
. Ouvrez le fichier :
Trouvez la directive server_names_hash_bucket_size
et supprimez le symbole #
pour décommenter la ligne :
...
http {
...
server_names_hash_bucket_size 64;
...
}
...
Enregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, testez pour vous assurer qu’il n’y a pas d’erreurs de syntaxe dans aucun de vos fichiers Nginx :
S’il n’y a pas de problèmes, voici la sortie attendue :
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Une fois que votre test de configuration est passé, redémarrez Nginx pour activer vos modifications :
Nginx devrait maintenant servir votre nom de domaine. Vous pouvez tester ceci en naviguant vers http://your_domain
. Le HTML personnalisé que vous avez créé dans le dossier /var/www/your_domain/html/index.html
devrait s’afficher ici :
Étape 6 – Se familiariser avec les fichiers et répertoires Nginx importants
Maintenant que vous savez comment gérer le service Nginx lui-même, prenez un peu de temps pour vous familiariser avec quelques répertoires et fichiers importants.
Contenu
/var/www/html
: Le contenu web réel, qui par défaut se compose uniquement de la page Nginx par défaut que vous avez vue précédemment, est servi à partir du répertoire/var/www/html
. Cela peut être modifié en modifiant les fichiers de configuration de Nginx.
Configuration du serveur
/etc/nginx
: Le répertoire de configuration de Nginx. Tous les fichiers de configuration de Nginx résident ici./etc/nginx/nginx.conf
: Le fichier de configuration principal de Nginx. Celui-ci peut être modifié pour apporter des modifications à la configuration globale de Nginx./etc/nginx/sites-available/
: Le répertoire où les blocs serveur par site peuvent être stockés. Nginx n’utilisera pas les fichiers de configuration trouvés dans ce répertoire à moins qu’ils ne soient liés au répertoiresites-enabled
. En général, toute la configuration des blocs serveur est faite dans ce répertoire, puis activée en les liant à l’autre répertoire./etc/nginx/sites-enabled/
: Le répertoire où les blocs serveur par site activés sont stockés. En général, ceux-ci sont créés en liant les fichiers de configuration trouvés dans le répertoiresites-available
./etc/nginx/snippets
: Ce répertoire contient des fragments de configuration qui peuvent être inclus ailleurs dans la configuration de Nginx. Les segments de configuration potentiellement répétables sont de bons candidats pour être refactorisés en fragments.
Journaux du serveur
/var/log/nginx/access.log
: Chaque requête à votre serveur web est enregistrée dans ce fichier journal à moins que Nginx ne soit configuré autrement./var/log/nginx/error.log
: Toutes les erreurs de Nginx seront enregistrées dans ce journal.
Conclusion
Maintenant que vous avez installé votre serveur web, vous avez de nombreuses options pour le type de contenu que vous pouvez servir et les technologies que vous pouvez utiliser pour créer une expérience plus riche pour vos utilisateurs.
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-debian-10