Installer Nginx sur Debian 12 et Ubuntu 24.04 depuis le depot officiel
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