RéseauIntermédiaire10 min
Guide Nginx
Découvrez comment installer et configurer Nginx sur Debian/Ubuntu. Ce guide couvre l'installation, la structure des fichiers de configuration, la mise en place d'un site statique, la redirection HTTP vers HTTPS, la configuration d'un reverse proxy, ainsi que la sécurisation avec Certbot pour obtenir un certificat SSL gratuit.
Publié le 6 décembre 2025
Installation de Nginx
Sur Debian/Ubuntu :
bash
sudo apt update
sudo apt install nginx -y
Vérifier que le service est actif :
bash
systemctl status nginx
Lancer/activer Nginx au démarrage :
bash
sudo systemctl enable --now nginx
Emplacement des fichiers importants
- Configuration principale :
/etc/nginx/nginx.conf - Sites disponibles :
/etc/nginx/sites-available/ - Sites activés :
/etc/nginx/sites-enabled/ - Logs :
/var/log/nginx/access.loget/var/log/nginx/error.log
Exemple de configuration (site simple)
Créer un fichier dans /etc/nginx/sites-available/<exemple>.conf :
nginx
server {
listen 80;
server_name monsite.com www.<exemple>.com;
root /var/www/<exemple>;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Activer le site et recharger Nginx :
bash
ln -s /etc/nginx/sites-available/<exemple> /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Redirection HTTP → HTTPS
nginx
server {
listen 80;
server_name <exemple>.com www.<exemple>.com;
return 301 https://$host$request_uri;
}
Reverse Proxy (ex. pour une app sur port 3000)
nginx
server {
listen 80;
server_name app.<exemple>.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Sécuriser avec Certbot (HTTPS)
Installer Certbot :
bash
sudo apt install certbot python3-certbot-nginx -y
Générer un certificat SSL :
bash
sudo certbot --nginx -d <exemple>.com -d www.<exemple>.com
Renouvellement automatique :
bash
sudo systemctl list-timers | grep certbot
Bonnes pratiques
- Toujours tester la configuration avant un reload :
bash
sudo nginx -t