Comment installer Nginx sur Debian 12, 11 ou 10

Nginx est un serveur Web puissant connu pour ses hautes performances et sa faible consommation de ressources. Conçu à l'origine pour gérer le problème C10k, il excelle dans la diffusion de contenu statique, l'équilibrage de charge et le proxy inverse. La combinaison de Nginx avec Debian, connu pour sa stabilité et sa sécurité, permet d'obtenir un environnement serveur robuste et fiable.

Principales caractéristiques de Nginx :

  • Haute performance: Gère efficacement plusieurs connexions simultanées.
  • Faible utilisation des ressources : Optimisé pour fonctionner avec un minimum de mémoire et de CPU.
  • L'équilibrage de charge: Distribue le trafic sur plusieurs serveurs pour des performances améliorées.
  • Proxy inverse : Transfère les demandes des clients vers les serveurs backend de manière transparente.
  • Gestion du contenu statique : Sert les fichiers statiques rapidement et efficacement.
  • Fonctions de sécurité: Prend en charge SSL/TLS pour les communications cryptées.
  • La flexibilité: Prend en charge les protocoles tels que HTTP, HTTPS, SMTP, POP3 et IMAP.

Avantages de la combinaison de Nginx avec Debian :

  • La stabilité: La réputation de stabilité de Debian garantit la fiabilité de votre serveur.
  • Sécurité: Les mesures de sécurité robustes de Debian protègent votre serveur Nginx des vulnérabilités.
  • Facilité d'utilisation: Le système de gestion des paquets de Debian simplifie l'installation et la maintenance de Nginx.
  • Soutien communautaire : Nginx et Debian disposent de communautés solides fournissant des ressources et un support étendus.

Lors de la transition vers l'installation, vous constaterez que la stabilité de Debian s'associe parfaitement à l'efficacité de Nginx, créant un environnement idéal pour vos applications Web. Examinons les étapes requises pour installer et configurer Nginx sur un serveur Debian.

Préparation de votre système avant l'installation de Nginx

Assurez-vous que votre système est mis à jour avant d'installer Nginx. Cela évite les conflits potentiels lors de l'installation et réduit le risque de problèmes de compatibilité et de vulnérabilités de sécurité.

Pour mettre à jour vos packages système, exécutez ce qui suit :

sudo apt update && sudo apt upgrade

Cette commande récupère la liste des mises à jour disponibles (via apt update), puis met à niveau les progiciels actuels vers leurs dernières versions (à l'aide de apt upgrade).

Installer le standard du serveur Web de NGINX

Par défaut, NGINX est disponible dans les référentiels Debian. Cela rend le processus d’installation simple.

Exécutez la commande suivante pour installer nginx :

sudo apt install nginx

Le apt install La commande indique à l'utilitaire de gestion des packages APT (qui fait partie du système Debian) d'installer le package NGINX.

Facultatif : installez la version NGINX-Full

NGINX propose un nginx-full version avec des modules supplémentaires introuvables dans la version standard. Si vous avez besoin de plus de fonctionnalités, installez la version nginx-full :

sudo apt install nginx-full

Facultatif : installez la version NGINX-Extras

Pour un ensemble de fonctionnalités encore plus large, considérez le nginx-extras version. À installer:

sudo apt install nginx-extras

Vérification de l'installation de NGINX

Après l'installation, assurez-vous que NGINX fonctionne correctement.

Vérifiez l'état du service NGINX avec les éléments suivants :

systemctl status nginx

NGINX fonctionne correctement si la sortie indique « actif (en cours d'exécution) ». Sinon, la sortie détaillera l’erreur pour le dépannage.

Si NGINX n'est pas activé, utilisez :

sudo systemctl enable nginx --now

Configurer le pare-feu UFW pour Nginx

UFW, ou Uncomplicated Firewall, fournit une interface facile à utiliser pour gérer les règles de pare-feu iptables. Il n'est pas installé par défaut sur Debian, mais vous pouvez l'obtenir à partir des référentiels par défaut. Si votre serveur dispose d'un accès public, vous devez configurer des règles de sécurité UFW.

Installer le pare-feu UFW

Si UFW n'est pas déjà installé sur votre système, vous pouvez le faire en exécutant la commande suivante :

sudo apt install ufw

Activer le pare-feu UFW

Une fois l'installation terminée, vous pouvez activer UFW en exécutant la commande suivante :

sudo ufw enable

Les paramètres par défaut d'UFW bloquent toutes les connexions entrantes et autorisent toutes les connexions sortantes. Cela signifie qu'il arrête l'accès non sollicité au système mais permet à votre système d'atteindre le monde extérieur.

Liste des applications installées

UFW utilise des profils d'application, qui sont des ensembles de règles pour des applications spécifiques. Pour voir les applications installées qui ont des profils UFW, exécutez :

sudo ufw app list

Configuration des règles UFW pour NGINX

En fonction de vos besoins, vous pouvez configurer UFW pour autoriser les connexions NGINX via HTTP (Port 80), HTTPS (Port 443) ou les deux.

Pour HTTP (Port 80) uniquement :

sudo ufw allow 'Nginx HTTP'

HTTPS (Port 443) uniquement :

sudo ufw allow 'Nginx HTTPS'

HTTP et HTTPS :

sudo ufw allow 'Nginx Full'

Vérification des règles de pare-feu

Pour confirmer que vos règles sont en place, vérifiez les règles de pare-feu actives :

sudo ufw status

Test de la configuration NGINX

Après avoir configuré UFW, assurez-vous de voir la page de destination de NGINX. Dans votre navigateur, accédez à l'adresse IP de votre serveur :

http://your_server_ip

Ou, pour les configurations locales :

http://localhost

Supposons que vous voyiez la page par défaut de NGINX ; votre configuration fonctionne. Cela met fin à la configuration du pare-feu pour NGINX sur Debian.

Créer des blocs de serveur NGINX

Comme les hôtes virtuels d'Apache, les blocs de serveur NGINX vous permettent d'héberger plusieurs domaines à partir d'un seul serveur. Chaque domaine a ses paramètres de configuration. Pour ce guide, remplacez « exemple.com » par votre nom de domaine réel.

Créez un répertoire pour votre domaine

Créez un répertoire pour votre domaine. Ce répertoire stockera les fichiers de votre site Web :

sudo mkdir -p /var/www/example.com/

Attribuer la propriété au répertoire Nginx

Attribuez la propriété du répertoire à l'utilisateur et au groupe « www-data », que NGINX utilise habituellement :

sudo chown -R www-data:www-data /var/www/example.com/

Créer une page HTML de test Nginx

Créez une page HTML de test dans le répertoire de votre domaine pour confirmer votre configuration NGINX :

sudo nano /var/www/example.com/index.html

Ajoutez le code HTML suivant :

<html>
 <head>
  <title>Welcome to Example.com</title>
 </head>
 <body>
   <h1>Success! The NGINX server block is working!</h1>
 </body>
</html>

Après avoir collé le code dans l'éditeur nano, appuyez sur CTRL+O pour enregistrer les modifications, puis sur CTRL+X pour quitter l'éditeur.

Créer un bloc de serveur NGINX pour la page de test

Configurez un bloc de serveur pour votre site Web :

sudo nano /etc/nginx/sites-available/example.com.conf

Ajoutez la configuration suivante :

server {
 listen 80;
 listen [::]:80;

 root /var/www/example.com/;
 index index.html index.htm index.nginx-debian.html;

 server_name example.com www.example.com;

 location / {
  try_files $uri $uri/ =404;
 }
}

Cette configuration indique à NGINX d'écouter les connexions entrantes sur le port 80 pour les deux example.com et www.example.com. Assurez-vous de remplacer le root directive avec le chemin du répertoire que vous avez créé précédemment.

Activer le bloc serveur NGINX via un lien symbolique

Activez le blocage de votre serveur en créant un lien symbolique du répertoire sites-available vers le répertoire sites-enabled :

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Configuration finale et test

Enfin, nous modifierons le fichier de configuration NGINX par défaut et effectuerons un test pour nous assurer que tout fonctionne comme prévu.

Modification du fichier de configuration NGINX

Ouvrez le nginx.conf déposer:

sudo nano /etc/nginx/nginx.conf

Cherchez la ligne server_names_hash_bucket_size 64; au sein du http {} bloquez-le et décommentez-le.

Cette directive permet à NGINX de gérer des noms de domaine longs et un nombre plus important de noms de serveurs en allouant plus de mémoire à cet effet. Toutefois, veillez à ne pas définir cette valeur trop élevée, car elle pourrait consommer plus de mémoire que nécessaire.

Enregistrez les modifications et quittez l'éditeur en appuyant sur CTRL+O et CTRL+X.

Testez votre configuration NGINX

Avant de continuer et de redémarrer NGINX, c'est une bonne pratique de vérifier que votre syntaxe de configuration est correcte. Exécutez la commande suivante pour lancer un test :

sudo nginx -t

Si votre configuration est correcte, vous verrez cette sortie :

nginx : la syntaxe du fichier de configuration /etc/nginx/nginx.conf est correcte nginx : le test du fichier de configuration /etc/nginx/nginx.conf est réussi

Ces messages indiquent que votre configuration NGINX a été validée avec succès.

Vérification de votre blocage de serveur

Pour garantir que votre blocage de serveur fonctionne correctement, ouvrez votre domaine dans un navigateur Web. Vous devriez voir la page de test confirmant que le blocage de votre serveur est actif.

Commandes Nginx supplémentaires

Améliorer la sécurité des fichiers sur votre serveur Web

La sécurité des fichiers et dossiers sur votre serveur Web est primordiale. Évitez les droits d’accès trop permissifs. Utilisez ces commandes pour définir les autorisations correctes pour tous les fichiers et répertoires de votre racine Web.

N'oubliez pas de remplacer /var/www/example.com/ avec votre chemin webroot :

sudo find /var/www/example.com/ -type d -exec chmod 755 "{}" \;
sudo find /var/www/example.com/ -type f -exec chmod 644 "{}" \;

Ces commandes définissent les autorisations de lecture et d'exécution pour les répertoires et les autorisations de lecture-écriture pour les fichiers pour le propriétaire. Les groupes et autres bénéficient d'un accès en lecture seule. Ajustez ces autorisations selon les exigences de votre application.

Sécurité Nginx avec le certificat SSL gratuit Let's Encrypt

L'utilisation du protocole HTTPS garantit la sécurité du serveur Web. Let's Encrypt fournit un certificat SSL gratuit. Installez le package certbot avec :

sudo apt install python3-certbot-nginx

Ensuite, lancez la création du certificat :

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

Remplacez par votre e-mail et votre nom de domaine. Cette commande configure HTTPS avec les fonctionnalités de sécurité requises.

Configuration du renouvellement automatique des certificats

Les certificats Let's Encrypt durent 90 jours. Configurez des renouvellements automatiques avec le script Certbot. Testez le processus :

sudo certbot renew --dry-run

En cas de succès, ajoutez la commande de renouvellement à crontab :

sudo crontab -e

Incluez cette ligne pour renouveler quotidiennement à minuit :

00 00 */1 * * /usr/sbin/certbot-auto renew

Journaux du serveur Nginx

Surveillez les journaux de votre serveur pour un serveur Web bien entretenu. Par défaut, les journaux résident dans /var/log/nginx. Listez-les avec :

cd /var/log/nginx && ls -l

Les fichiers journaux les plus pertinents sont les access.log et error.log. Pour surveiller les journaux en temps réel, utilisez le tail -f commande suivie du chemin d'accès au journal :

tail -f /var/log/nginx/access.log

Mettre à jour Nginx

Avant de mettre à jour votre serveur Nginx, il est judicieux de créer une sauvegarde de vos configurations actuelles. Pour sauvegarder votre principal nginx.conf fichier, utilisez la commande suivante :

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx-backup.conf

Dans les cas où vous avez largement personnalisé votre configuration Nginx, vous souhaiterez peut-être sauvegarder l'intégralité de votre répertoire Nginx :

sudo cp -r /etc/nginx/ /etc/nginx-bkup

Une fois vos configurations sauvegardées en toute sécurité, vous pouvez maintenant procéder à la mise à jour de Nginx :

sudo apt update
sudo apt upgrade

Sauvegarder régulièrement vos configurations est une bonne pratique, en particulier dans les configurations complexes.

Supprimer Nginx

Si vous n'avez plus besoin de Nginx sur votre serveur, vous pouvez le supprimer en suivant ces étapes. Tout d’abord, assurez-vous que le service Nginx est arrêté :

sudo systemctl disable nginx --now

Ensuite, supprimez complètement le package Nginx :

sudo apt remove nginx

Vous pouvez encore trouver des restes de configurations Nginx dans le /etc/nginx annuaire. Pour les supprimer, utilisez la commande :

sudo rm -R /etc/nginx/

N'oubliez pas que cela supprimera tous vos fichiers de configuration personnalisés, alors assurez-vous d'avoir sauvegardé tout ce dont vous avez besoin avant de passer à cette étape.

Configurer les paramètres de rotation des journaux dans Nginx

Nginx inclut par défaut une fonctionnalité de rotation quotidienne des journaux. Cependant, vous pouvez personnaliser ces paramètres en fonction de vos besoins.

Accéder au fichier de configuration pour la rotation des journaux

Pour modifier les paramètres de rotation des journaux, vous devez accéder au fichier de configuration. Voici comment l'ouvrir à l'aide de l'éditeur de texte nano :

sudo nano /etc/nginx/logrotate.d/nginx

Une fois le fichier ouvert, vous verrez un contenu ressemblant à celui-ci. Ajustez les directives de ce fichier pour répondre à vos besoins de conservation et de rotation des journaux, principalement si vous utilisez des outils de surveillance comme fail2ban.

Exemple de fichier de configuration de rotation des journaux

/var/log/nginx/*.log {
  daily
  missingok
  rotate 14
  compress
  delaycompress
  notifempty
  create 0640 www-data adm
  sharedscripts
  prerotate
  if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
  run-parts /etc/logrotate.d/httpd-prerotate; \
  fi \
  endscript
  postrotate
  invoke-rc.d nginx rotate >/dev/null 2>&1
  endscript
}

Comprendre les paramètres de configuration principaux

Dans cette configuration, les administrateurs système se concentrent généralement sur deux paramètres principaux :

  1. Tous les jours: Ce paramètre définit la fréquence de rotation du journal. Bien que la valeur par défaut soit « quotidiennement », vous pouvez la modifier en « hebdomadaire » ou « mensuellement ». Cependant, les rotations quotidiennes simplifient généralement la gestion des journaux.
  2. Rotation 14: Ce numéro indique au système combien de fichiers journaux conserver. Par exemple, un paramètre de « 14 » conserve les 14 derniers journaux. Si vous souhaitez stocker seulement une semaine de journaux, ajustez ce nombre à « 7 ».

Bien que Nginx vous permette de modifier d'autres paramètres, effectuez toujours les modifications avec soin. Modifier les paramètres sans comprendre leur impact peut entraîner des résultats inattendus. Assurez-vous de modifier ces paramètres en fonction de vos besoins sans provoquer de problèmes involontaires.

N'oubliez pas qu'il n'existe pas d'approche unique en matière de gestion des journaux. Évaluez toujours votre environnement et vos exigences spécifiques avant d’apporter des modifications.

Pensées finales

Dans ce guide, nous avons expliqué la configuration de Nginx sur Debian, couvrant l'installation, la configuration et l'optimisation de base. En combinant l'efficacité de Nginx avec la stabilité de Debian, vous avez créé une base solide pour votre serveur Web. N'oubliez pas de garder votre serveur à jour et d'explorer des modules Nginx supplémentaires pour des fonctionnalités améliorées. Si vous rencontrez des problèmes, les communautés fortes autour de Debian et Nginx sont toujours d'excellentes ressources. Merci d'avoir suivi et bon hébergement !

Joshua James
Suis-moi
Les derniers articles par Joshua James (tout voir)

Laissez un commentaire