Nginx : installation sur Ubuntu
Nginx est un serveur web et un reverse proxy performant. Ce guide l’installe sur Ubuntu 24.04 et 26.04. Les exemples utilisent des noms génériques (exemple.com).
Versions fournies par Ubuntu
Section intitulée « Versions fournies par Ubuntu »| Ubuntu | Paquet nginx |
|---|---|
| 24.04 | Nginx 1.24 |
| 26.04 | Nginx 1.28 |
Pour une version plus récente que celle d’Ubuntu, le projet propose un dépôt officiel (nginx.org/en/linux_packages.html). Ce dépôt a une organisation de fichiers légèrement différente (conf.d/ sans sites-available) : les guides de cette rubrique suivent l’organisation du paquet Ubuntu.
Installer
Section intitulée « Installer »sudo apt updatesudo apt install nginxnginx -vLe service démarre automatiquement :
sudo systemctl status nginxsudo systemctl enable --now nginxcurl -I http://localhost # 200 OKOuvrir les ports (UFW)
Section intitulée « Ouvrir les ports (UFW) »Nginx enregistre des profils pour UFW :
sudo ufw app list # Nginx Full, Nginx HTTP, Nginx HTTPS, OpenSSHsudo ufw allow 'Nginx Full' # ports 80 et 443sudo ufw allow OpenSSH # à ne pas oublier avant d'activer UFWsudo ufw status| Profil | Ports |
|---|---|
Nginx HTTP |
80 |
Nginx HTTPS |
443 |
Nginx Full |
80 et 443 |
Fichiers et emplacements
Section intitulée « Fichiers et emplacements »| Élément | Emplacement |
|---|---|
| Configuration principale | /etc/nginx/nginx.conf |
| Sites disponibles | /etc/nginx/sites-available/ |
| Sites activés (liens symboliques) | /etc/nginx/sites-enabled/ |
| Fragments réutilisables | /etc/nginx/snippets/ |
| Configurations supplémentaires | /etc/nginx/conf.d/*.conf |
| Racine par défaut | /var/www/html |
| Journaux | /var/log/nginx/access.log, /var/log/nginx/error.log |
| Utilisateur des processus | www-data |
Tester la configuration et recharger
Section intitulée « Tester la configuration et recharger »Toute modification se teste avant d’être appliquée :
sudo nginx -t # vérifie la syntaxesudo systemctl reload nginx # applique sans interruptionsudo nginx -T | less # affiche la configuration complète, includes résolusUn premier site
Section intitulée « Un premier site »sudo mkdir -p /var/www/exemple.comecho '<h1>Bonjour</h1>' | sudo tee /var/www/exemple.com/index.html
sudo tee /etc/nginx/sites-available/exemple.com <<'CONF'server { listen 80; listen [::]:80; server_name exemple.com www.exemple.com;
root /var/www/exemple.com; index index.html;
location / { try_files $uri $uri/ =404; }}CONF
sudo ln -s /etc/nginx/sites-available/exemple.com /etc/nginx/sites-enabled/sudo nginx -t && sudo systemctl reload nginxcurl -H "Host: exemple.com" http://localhostPour désactiver le site par défaut (page « Welcome to nginx ») : sudo rm /etc/nginx/sites-enabled/default (le fichier reste dans sites-available).
Droits des fichiers
Section intitulée « Droits des fichiers »Les processus Nginx tournent sous www-data : le site doit lui être lisible.
sudo chown -R $USER:www-data /var/www/exemple.comsudo chmod -R u=rwX,g=rX,o=rX /var/www/exemple.comMise à jour
Section intitulée « Mise à jour »sudo apt update && sudo apt upgrade # mises à jour de sécurité avec le systèmesudo nginx -t && sudo systemctl restart nginxDésinstallation
Section intitulée « Désinstallation »sudo apt purge nginx nginx-commonsudo apt autoremoveDépannage
Section intitulée « Dépannage »| Symptôme | Piste |
|---|---|
bind() to 0.0.0.0:80 failed (98: Address already in use) |
Un autre serveur écoute sur le port 80 (souvent Apache) : sudo ss -tlnp | grep ':80' |
403 Forbidden |
Droits insuffisants pour www-data, ou pas de fichier index |
404 Not Found alors que le fichier existe |
root incorrect, ou site non activé (sites-enabled) |
nginx -t signale unknown directive |
Directive inconnue de cette version ou module absent |
Job for nginx.service failed |
sudo journalctl -u nginx -n 50 et sudo nginx -t |
Ubuntu 24.04 et 26.04 : différences à connaître
Section intitulée « Ubuntu 24.04 et 26.04 : différences à connaître »Les commandes d’installation sont identiques. Les différences portent sur la configuration, déjà signalées ici et détaillées dans HTTPS et certificats.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Documentation officielle : nginx.org/en/docs
- Suite : Structure de la configuration