Knowledgebase

Installer et configurer Nginx sur Debian 12 (Bookworm)

Search Articles

Installer et configurer Nginx sur Debian 12 (Bookworm)

4 Views

Guide pas à pas pour installer Nginx sur Debian 12, gérer le service systemd, créer un hôte virtuel et activer HTTPS avec Let’s Encrypt. Destiné aux clients Boxis et administrateurs système.

Installer et configurer Nginx sur Debian 12 (Bookworm)

Dernière mise à jour : mars 2026
Temps de lecture : ~12 minutes
Public : administrateurs système et utilisateurs avancés gérant un serveur Debian 12.

Nginx est un serveur HTTP haute performance et un reverse proxy. Sous Debian 12 (Bookworm), il s’intègre bien à systemd et convient devant PHP, Node.js ou des API en amont. Ce guide vous fait installer proprement, sécuriser un minimum, créer un hôte virtuel et, si vous le souhaitez, activer TLS avec Let’s Encrypt.


Ce que vous obtiendrez

  • Installation de Nginx depuis les dépôts Debian et vérification du service.
  • Ouverture des ports HTTP/HTTPS (exemple avec UFW).
  • Racine web dédiée et bloc server minimal.
  • Option : certificat Let’s Encrypt et renouvellement automatique.

Prérequis

  • Machine sous Debian 12 avec accès SSH.
  • Compte utilisateur avec droits sudo (éviter le travail quotidien en root).
  • Nom DNS (ex. app.example.com) pointant vers l’IP publique du serveur si vous visez HTTPS et le renouvellement automatique.
  • Notions de base en ligne de commande.

Note Boxis : sur une offre hébergée ou managée par Boxis, les modifications au niveau serveur peuvent être restreintes ; ouvrez un ticket avant toute intervention sur la pile web mutualisée.


1. Mise à jour des paquets et installation de Nginx

sudo apt update
sudo apt install -y nginx

Debian fournit une version éprouvée de Nginx ; sauf besoin de module spécifique, évitez les dépôts tiers.


2. Pare-feu : autoriser HTTP et HTTPS (UFW)

Si UFW est actif :

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload
sudo ufw status

Avec nftables ou un groupe de sécurité cloud, ouvrez TCP 80 et TCP 443 au niveau approprié.


3. Gérer Nginx avec systemd

Action Commande
Activer au démarrage sudo systemctl enable nginx
Démarrer sudo systemctl start nginx
État sudo systemctl status nginx
Recharger la config sudo systemctl reload nginx
Tester la config sudo nginx -t

Après chaque modification de fichier de configuration, exécutez nginx -t avant de recharger.


4. Emplacement des fichiers de configuration

Sur Debian, on retrouve généralement :

  • Fichier principal : /etc/nginx/nginx.conf
  • Sites : /etc/nginx/sites-available/ (liens dans sites-enabled/)
  • Extra : /etc/nginx/conf.d/*.conf

Préférez sites-available / sites-enabled pour activer ou désactiver un site sans supprimer les fichiers.


5. Créer un hôte virtuel (bloc server)

Exemple : domaine app.example.com, fichiers dans /var/www/app.example.com/html.

5.1 Répertoires et page de test

sudo mkdir -p /var/www/app.example.com/html
echo '<!DOCTYPE html><html><head><meta charset="utf-8"><title>OK</title></head><body><h1>It works</h1></body></html>' | sudo tee /var/www/app.example.com/html/index.html
sudo chown -R www-data:www-data /var/www/app.example.com

5.2 Fichier de configuration

Créez /etc/nginx/sites-available/app.example.com.conf :

server {
    listen 80;
    listen [::]:80;
    server_name app.example.com;

    root /var/www/app.example.com/html;
    index index.html;

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

Activez le site (et désactivez le site par défaut si inutile) :

sudo ln -sf /etc/nginx/sites-available/app.example.com.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Testez avec un navigateur ou curl -I http://app.example.com.


6. Sécuriser HTTPS avec Let’s Encrypt

sudo apt install -y certbot python3-certbot-nginx

Obtenir un certificat (adaptez l’e-mail et le domaine) :

sudo certbot --nginx -d app.example.com -m vous@example.com --agree-tos --non-interactive

Vérifiez le renouvellement :

sudo certbot renew --dry-run

Le renouvellement est en général géré par un timer systemd ou une tâche cron ; vérifiez avec systemctl list-timers | grep certbot.


7. Bonnes pratiques

  • Préférer reload à restart après simple changement de config.
  • Séparer les journaux par site si le trafic est important (access_log / error_log).
  • Masquer la version du serveur si la politique le permet : server_tokens off;.
  • En PHP ou application : fastcgi_pass vers PHP-FPM ou proxy_pass vers un upstream cohérent.
  • Sauvegarder /etc/nginx/ avant les grosses modifications.

8. Dépannage rapide

Symptôme Pistes
502 Bad Gateway Application en panne ; mauvais proxy_pass / fastcgi_pass.
403 Forbidden Droits sur les répertoires ; chemin root ; SELinux/AppArmor.
Config refusée sudo nginx -t et corriger les lignes indiquées.
Échec de renouvellement certificat DNS toujours pointé vers ce serveur ; port 80 joignable (HTTP-01).

9. Synthèse

Vous avez installé Nginx sur Debian 12, ouvert les ports web, créé un hôte virtuel et, en option, activé HTTPS avec Certbot. En production, affinez journaux, limites de débit et surveillance des services en amont.


Sujets liés

  • Recherche dans la base de connaissances Boxis : /{lang}/knowledgebase/search/
  • Hébergement et DNS : catégorie Hébergement & domaines lorsqu’elle est disponible.

Article fourni à titre indicatif ; les commandes peuvent varier selon l’image système et vos personnalisations.

Was this article helpful?
Views: 4