NGINX est un serveur web léger et puissant qui peut être utilisé comme reverse proxy pour sécuriser, centraliser et équilibrer le trafic vers vos applications internes.
Prérequis
- Un serveur Linux (Debian, Ubuntu, Rocky, AlmaLinux)
- Un domaine configuré (DNS pointant vers l’IP du serveur)
- Accès root ou sudo
Installation de NGINX
Debian/Ubuntu
sudo apt update
sudo apt install nginx -y
RHEL/AlmaLinux/Rocky
sudo dnf install nginx -y
Configuration du reverse proxy
Créer un fichier /etc/nginx/sites-available/mon-site
:
server {
listen 80;
server_name mon-domaine.com;
location / {
proxy_pass http://192.168.1.10:8080;
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;
}
}
Activer le site :
sudo ln -s /etc/nginx/sites-available/mon-site /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Ajouter SSL avec Let’s Encrypt
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d mon-domaine.com
Renouvellement automatique :
sudo systemctl status certbot.timer
Configuration de Load Balancing
Modifier le bloc location
:
upstream backend {
server 192.168.1.10:8080;
server 192.168.1.11:8080;
}
server {
listen 443 ssl;
server_name mon-domaine.com;
ssl_certificate /etc/letsencrypt/live/mon-domaine.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mon-domaine.com/privkey.pem;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Optimisation et sécurité
- Activer le cache statique
- Limiter le nombre de connexions
- Ajouter un firewall applicatif avec
fail2ban
oumodsecurity
- Activer les headers de sécurité :
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options DENY;
add_header X-XSS-Protection "1; mode=block";
Conclusion
Avec NGINX, vous pouvez mettre en place un reverse proxy robuste, sécurisé et performant, adapté aussi bien aux petites applications qu’aux infrastructures plus complexes avec load balancing.