Installer Nginx sur Debian 12 et Ubuntu 24.04 depuis le depot officiel

7 min de lecture·Matthieu|

Installez Nginx depuis le depot officiel nginx.org sur Debian 12 ou Ubuntu 24.04. Couvre la cle de signature, le pinning apt, les regles de pare-feu UFW et nftables, la gestion systemd et la verification a chaque etape.

Installer Nginx sur Debian 12 et Ubuntu 24.04 depuis le depot officiel

Ce tutoriel installe Nginx depuis le depot officiel nginx.org sur un VPS Debian 12 ou Ubuntu 24.04. Vous obtenez la derniere version (1.28.2 stable ou 1.29.6 mainline) au lieu du paquet obsolete fourni par votre distribution. Chaque etape inclut une verification pour que vous sachiez exactement ce qui s'est passe.

Pour comprendre ou Nginx s'integre dans votre pile serveur, consultez Nginx Administration on a VPS.

Prerequis

Vous avez besoin de :

  • Un VPS sous Debian 12 (Bookworm) ou Ubuntu 24.04 (Noble Numbat)
  • Un utilisateur non-root avec les privileges sudo
  • Un acces SSH au serveur

Toutes les commandes de ce tutoriel s'executent en tant qu'utilisateur sudo. Pas root.

Faut-il installer Nginx stable ou mainline ?

Nginx maintient deux branches. Stable (numero de version pair, actuellement 1.28.x) ne recoit que les correctifs critiques. Mainline (numero de version impair, actuellement 1.29.x) recoit toutes les nouvelles fonctionnalites, corrections de bugs et correctifs de securite. L'equipe Nginx recommande mainline pour la production. Stable existe pour ceux qui veulent un minimum de changements entre les mises a jour.

Stable Mainline
Version actuelle 1.28.2 1.29.6
Frequence de mise a jour Correctifs critiques uniquement Toutes les 4 a 6 semaines
Nouvelles fonctionnalites Non Oui
Recommande par nginx.org Pour les configurations conservatrices Pour la production

Ce tutoriel utilise stable par defaut. Pour installer mainline a la place, remplacez l'URL du depot la ou c'est indique.

Pourquoi utiliser le depot officiel plutot que le paquet de la distribution ?

Les depots apt par defaut de Debian 12 et Ubuntu 24.04 fournissent respectivement Nginx 1.22.1 et 1.24.0. Ces versions ont des mois, voire des annees de retard sur les versions officielles. Le depot nginx.org vous donne la derniere version stable ou mainline, maintenue par l'equipe Nginx.

Source Version Debian 12 Version Ubuntu 24.04 Maintenu par
Depot de la distribution 1.22.1 1.24.0 Mainteneurs de l'OS
nginx.org stable 1.28.2 1.28.2 Equipe Nginx
nginx.org mainline 1.29.6 1.29.6 Equipe Nginx

Comment installer Nginx sur Debian 12 depuis le depot officiel ?

Installez les prerequis, ajoutez la cle de signature nginx.org, configurez la source apt, epinglez le depot et installez. Cela prend environ deux minutes.

Etape 1 : Installer les prerequis

sudo apt update
sudo apt install -y curl gnupg2 ca-certificates lsb-release debian-archive-keyring

Etape 2 : Importer la cle de signature nginx.org

curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Verifiez l'empreinte de la cle :

gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg

Oeil attentif : la sortie liste plusieurs cles de signature. Cherchez cette empreinte parmi elles :

573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62

Si aucune des empreintes listees ne correspond, supprimez le fichier et retelechargez-le. Une cle qui ne correspond pas signifie que le telechargement a ete intercepte ou corrompu.

Etape 3 : Ajouter le depot apt

Pour stable :

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
https://nginx.org/packages/debian $(lsb_release -cs) nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Pour mainline, remplacez packages par packages/mainline :

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
https://nginx.org/packages/mainline/debian $(lsb_release -cs) nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Etape 4 : Epingler le depot officiel

Cela garantit qu'apt prefere le paquet nginx.org a la version de la distribution :

echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
    | sudo tee /etc/apt/preferences.d/99nginx

Sans epinglage, un futur apt upgrade pourrait remplacer le paquet officiel par l'ancienne version de la distribution.

Etape 5 : Installer Nginx

sudo apt update
sudo apt install -y nginx

Etape 6 : Demarrer et verifier l'installation

nginx -v

Sortie attendue pour stable :

nginx version: nginx/1.28.2

Le paquet nginx.org ne demarre pas automatiquement apres l'installation. Demarrez-le maintenant :

sudo systemctl start nginx

Verifiez que le service tourne :

sudo systemctl status nginx

Oeil attentif : cherchez Active: active (running) dans la sortie.

Verifiez que Nginx ecoute sur le port 80 :

ss -tlnp | grep :80

Sortie attendue :

LISTEN 0      511          0.0.0.0:80        0.0.0.0:*    users:(("nginx",pid=...,fd=...))

Testez la page d'accueil :

curl -I http://localhost

Oeil attentif : la reponse doit inclure HTTP/1.1 200 OK et Server: nginx/1.28.2.

Comment installer Nginx sur Ubuntu 24.04 depuis le depot officiel ?

La procedure est quasi identique a Debian. Les seules differences sont le paquet de prerequis et l'URL du depot.

Etape 1 : Installer les prerequis

sudo apt update
sudo apt install -y curl gnupg2 ca-certificates lsb-release ubuntu-keyring

Note : Ubuntu utilise ubuntu-keyring au lieu de debian-archive-keyring.

Etape 2 : Importer la cle de signature nginx.org

curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Verifiez l'empreinte (meme cle que Debian) :

gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg

Cherchez 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 parmi les cles listees.

Etape 3 : Ajouter le depot apt

Pour stable :

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
https://nginx.org/packages/ubuntu $(lsb_release -cs) nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Pour mainline :

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
https://nginx.org/packages/mainline/ubuntu $(lsb_release -cs) nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Etape 4 : Epingler le depot officiel

echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
    | sudo tee /etc/apt/preferences.d/99nginx

Etape 5 : Installer Nginx

sudo apt update
sudo apt install -y nginx

Etape 6 : Demarrer et verifier l'installation

Demarrez Nginx (il ne demarre pas automatiquement apres l'installation) :

sudo systemctl start nginx

Executez les memes verifications que pour Debian :

nginx -v
sudo systemctl status nginx
ss -tlnp | grep :80
curl -I http://localhost

Vous devriez voir nginx/1.28.2 (stable) ou nginx/1.29.6 (mainline) dans nginx -v et dans les en-tetes de la reponse curl.

Comment gerer Nginx avec systemd ?

Nginx fournit un fichier d'unite systemd. Voici les commandes que vous utiliserez au quotidien.

Commande Ce qu'elle fait
sudo systemctl start nginx Demarrer Nginx
sudo systemctl stop nginx Arreter Nginx
sudo systemctl restart nginx Arreter puis redemarrer (coupe les connexions)
sudo systemctl reload nginx Recharger la configuration sans couper les connexions
sudo systemctl enable nginx Demarrer au boot
sudo systemctl disable nginx Ne pas demarrer au boot
sudo systemctl status nginx Afficher l'etat et les logs recents

Reload vs restart : Utilisez reload apres un changement de configuration. Il applique la nouvelle configuration sans couper les connexions actives. Utilisez restart uniquement quand vous avez modifie des parametres au niveau binaire ou mis a jour Nginx. Reload est sur. Restart coupe toutes les connexions actives.

Activez le demarrage automatique de Nginx au boot :

sudo systemctl enable nginx

Testez toujours votre configuration avant de recharger :

sudo nginx -t

Sortie attendue :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Si nginx -t signale des erreurs, corrigez-les avant de recharger. Un reload echoue laisse la configuration precedente active. Un restart echoue laisse Nginx arrete.

Comment configurer les regles de pare-feu UFW pour Nginx ?

UFW (Uncomplicated Firewall) est le frontend pare-feu par defaut sur Ubuntu. Il est disponible sur Debian mais pas installe par defaut. Certaines images VPS sont livrees sans UFW. Si ufw n'est pas trouve, installez-le d'abord :

sudo apt install -y ufw

Le paquet nginx.org n'inclut pas les profils d'application UFW (Nginx Full, Nginx HTTP, Nginx HTTPS). Ces profils ne sont fournis qu'avec le paquet de la distribution. Utilisez les numeros de port a la place.

Autorisez d'abord SSH (pour ne pas vous verrouiller dehors) :

sudo ufw allow OpenSSH

Autorisez HTTP (80) et HTTPS (443) :

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Si vous n'avez besoin que de HTTPS :

sudo ufw allow 443/tcp

Assurez-vous qu'UFW est actif :

sudo ufw enable

Verifiez les regles :

sudo ufw status

La sortie attendue inclut :

80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)

Si ufw status affiche Status: inactive, executez d'abord sudo ufw enable.

Comment configurer les regles de pare-feu nftables pour Nginx ?

Debian 12 utilise nftables comme backend de pare-feu par defaut. Si vous gerez les regles directement (sans UFW), ajoutez les ports Nginx a votre configuration nftables.

Editez votre configuration nftables :

sudo nano /etc/nftables.conf

Ajoutez ces regles dans votre chaine input (a l'interieur de votre table inet filter) :

tcp dport { 80, 443 } accept

Une configuration minimale fonctionnelle ressemble a ceci :

#!/usr/sbin/nft -f

flush ruleset

table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;

        iif lo accept
        ct state established,related accept
        tcp dport 22 accept
        tcp dport { 80, 443 } accept
    }

    chain forward {
        type filter hook forward priority 0; policy drop;
    }

    chain output {
        type filter hook output priority 0; policy accept;
    }
}

Appliquez les regles :

sudo nft -f /etc/nftables.conf

Verifiez :

sudo nft list ruleset

Oeil attentif : cherchez tcp dport { 80, 443 } accept dans la sortie. Si c'est absent, les regles n'ont pas ete appliquees.

Activez nftables au demarrage :

sudo systemctl enable nftables

Comment verifier que Nginx fonctionne correctement ?

Apres l'installation et la configuration du pare-feu, passez en revue cette checklist.

Depuis le serveur :

nginx -v
sudo systemctl status nginx
ss -tlnp | grep :80
curl -I http://localhost

Depuis votre machine locale (remplacez YOUR_SERVER_IP) :

curl -I http://YOUR_SERVER_IP

En-tetes de reponse attendus :

HTTP/1.1 200 OK
Server: nginx/1.28.2

Si le curl externe expire mais que localhost fonctionne, votre pare-feu bloque le port 80. Revenez a la section UFW ou nftables ci-dessus.

Vous pouvez aussi ouvrir http://YOUR_SERVER_IP dans un navigateur. Vous devriez voir la page « Welcome to nginx! ».

Emplacements des fichiers et repertoires principaux

Chemin Fonction
/etc/nginx/nginx.conf Fichier de configuration principal
/etc/nginx/conf.d/ Fichiers de configuration supplementaires (charges par defaut)
/var/log/nginx/access.log Journal d'acces
/var/log/nginx/error.log Journal d'erreurs
/usr/share/nginx/html/ Racine documentaire par defaut

Le paquet officiel nginx.org utilise /etc/nginx/conf.d/ pour les configurations de sites. Cela differe du paquet de la distribution, qui utilise sites-available/ et sites-enabled/. Les deux approches fonctionnent. Le modele conf.d est plus simple.

Pour comprendre comment les fichiers de configuration Nginx sont organises, consultez . Pour heberger plusieurs domaines sur ce serveur, consultez .

Copyright 2026 Virtua.Cloud. Tous droits reserves. Ce contenu est une creation originale de l'equipe Virtua.Cloud. Toute reproduction, republication ou redistribution sans autorisation ecrite est interdite.

Prêt à essayer ?

Déployez votre serveur en quelques secondes. Linux, Windows ou FreeBSD.

Voir les offres VPS