configurer nginx comme reverse proxy pour node.js avec ssl let’s encrypt
14/12/2025
Dans cet article, nous détaillons comment configurer nginx comme reverse proxy pour une application Node.js et gérer un certificat SSL gratuit via Let’s Encrypt. Cette approche améliore la sécurité, facilite la montée en charge et simplifie la maintenance de vos services web.
1. prérequis
- Serveur Ubuntu 22.04 ou Debian 11
- Node.js déployée en service systemd ou Docker
- Nom de domaine pointant vers votre IP publique
- Accès SSH en root ou sudo
2. installation de nginx
2.1. mise à jour du système
sudo apt update && sudo apt upgrade -y
2.2. installation et démarrage
sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx
Vérifiez qu’nginx écoute bien sur le port 80 :
ss -tlnp | grep nginx
3. configuration de nginx comme proxy inverse
Placez votre fichier de configuration dans /etc/nginx/sites-available puis activez-le.
3.1. exemple de fichier /etc/nginx/sites-available/node-app.conf
server {
listen 80;
server_name mon-domaine.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
sudo ln -s /etc/nginx/sites-available/node-app.conf /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
4. mise en place du certificat ssl let’s encrypt
4.1. installation de certbot
sudo apt install certbot python3-certbot-nginx -y
4.2. obtention et renouvellement
sudo certbot --nginx -d mon-domaine.com
sudo systemctl status certbot.timer # vérifie le renouvellement automatique
Certbot ajoute automatiquement la configuration SSL dans votre bloc server et redirige le trafic HTTP vers HTTPS.
5. tests de charge et bonnes pratiques
5.1. bench avec ab ou wrk
wrk -t4 -c100 -d30s https://mon-domaine.com/
# Exemple : 12 000 requêtes/s en moyenne, latence p99 < 50 ms
5.2. conseils sécurité et performance
- Activez
gzipethttp2dans nginx pour réduire la latence. - Utilisez
proxy_cachepour les ressources statiques (API REST peu dynamiques). - Désactivez les modules inutiles (
server_tokens off;). - Surveillez les métriques avec Prometheus et Grafana (Node.js).
6. conclusion
Vous disposez désormais d’une configuration robuste : nginx gère l’équilibrage, termine le SSL et laisse Node.js se concentrer sur la logique applicative. Cette architecture est éprouvée en production pour garantir sécurité, fiabilité et performance.
Envie de personnaliser ce setup pour votre projet SaaS ? Découvrez nos services ou contactez-nous pour un accompagnement sur mesure.

