Guide complet pour créer un proxy inverse Nginx sécurisé
Créer un proxy inverse sécurisé, fiable et évolutif est crucial pour les entreprises et les professionnels de l'informatique qui gèrent des sites web à fort trafic ou des applications complexes. Nginx, serveur web et proxy inverse open source, est une solution puissante pour acheminer, optimiser et sécuriser le trafic vers vos services back-end. Dans ce guide, nous vous expliquerons comment configurer un proxy inverse robuste avec Nginx sur Ubuntu 24.04, en abordant des étapes essentielles telles que le chiffrement TLS, la limitation du débit et l'intégration avec Cloudflare.
Si vous gérez des sites Web d'entreprise, des plateformes de commerce électronique ou des serveurs multimédias, ce guide vous permettra d'améliorer les performances, de garantir la disponibilité et de protéger votre infrastructure contre les vulnérabilités.
Qu'est-ce qu'un proxy inverse Nginx ?
Un proxy inverse Nginx agit comme serveur intermédiaire entre les clients et les services back-end. Il transmet les requêtes des clients au serveur back-end approprié, optimisant ainsi la répartition de la charge, renforçant la sécurité et activant des fonctionnalités telles que la mise en cache, la terminaison SSL et le filtrage du trafic. Cette configuration est particulièrement utile pour héberger des serveurs multimédias, des applications multisites et des services derrière des pare-feu.
sbb-itb-59e1987
Pourquoi vous avez besoin d'un proxy inverse
Un proxy inverse offre plusieurs avantages clés :
- Sécurité renforcée: Masque les adresses IP des serveurs backend et active le cryptage via TLS/SSL.
- Équilibrage de charge: Répartit le trafic uniformément sur plusieurs serveurs principaux.
- Optimisation:Réduit la latence et améliore l'efficacité des ressources.
- L'évolutivité: Facilite la gestion des scénarios à fort trafic.
- Facilité de gestion: Simplifie la configuration de plusieurs services backend derrière un domaine unifié.
Dans ce tutoriel, nous allons vous montrer comment :
- Configurez Nginx comme proxy inverse.
- Sécurisez votre configuration avec les certificats TLS Let's Encrypt.
- Configurez des optimisations avancées telles que la limitation du débit et le transfert des demandes.
- Intégrez Cloudflare pour contourner les restrictions de port du FAI.
Étape 1 : Installation de Nginx et Certbot sur Ubuntu 24.04
Mettez à jour votre système
Avant d’installer un logiciel, assurez-vous que votre système est à jour :
sudo apt update et sudo apt upgrade Installer Nginx et Certbot
Utilisez les commandes suivantes pour installer Nginx et Certbot avec le plugin Nginx :
sudo apt install nginx -y sudo apt install certbot python3-certbot-nginx -y Vérifier l'installation
Confirmez que Nginx est en cours d’exécution :
sudo systemctl status nginx Pour tester l'accès, déterminez l'adresse IP de votre serveur :
ip un Accédez à l'adresse IP dans un navigateur. En cas de succès, la page d'accueil par défaut de Nginx s'affichera.
Étape 2 : Configuration des règles de pare-feu
Activer le pare-feu simple (UFW)
UFW vous permet de gérer facilement les règles du pare-feu :
sudo ufw autorise 'Nginx Full' sudo ufw autorise OpenSSH sudo ufw active Vérifiez l’état de votre pare-feu pour vous assurer que les bons ports sont ouverts :
statut sudo ufw Étape 3 : Configuration du proxy Nginx
Créer des fichiers de configuration personnalisés
Pour plus de flexibilité et de sécurité, utilisez des fichiers d'extraits pour stocker des configurations spécifiques. Créez les fichiers suivants :
- En-têtes de sécurité:
Définissez des en-têtes de sécurité pour améliorer la protection :sudo nano /etc/nginx/snippets/security-headers.confadd_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff"; add_header X-XSS-Protection "1; mode=block"; - Paramètres du proxy:
Optimisez les flux longs et évitez les réponses lentes :sudo nano /etc/nginx/snippets/proxy.confdélai d'expiration de connexion proxy 60 s ; délai d'expiration d'envoi proxy 60 s ; délai d'expiration de lecture proxy 60 s ; - Limites de taux:
Atténuer les demandes excessives :sudo nano /etc/nginx/snippets/rate-limit.conflimite_req_zone $binary_remote_addr zone=malimite:10m débit=10r/s ;
Inclure des extraits dans la configuration principale
Modifier la configuration principale de Nginx :
sudo nano /etc/nginx/nginx.conf Ajoutez ce qui suit sous le http bloc:
inclure /etc/nginx/snippets/*.conf ; Redémarrez Nginx pour appliquer les modifications :
sudo systemctl reload nginx Étape 4 : Configuration d'un proxy inverse pour un service backend
Créer un hôte virtuel
Créez un fichier de configuration pour votre service backend :
sudo nano /etc/nginx/sites-available/jellyfin Exemple de configuration pour un serveur multimédia Jellyfin :
serveur { listen 80; nom_serveur jelly.votredomaine.com; emplacement / { proxy_pass http://10.10.0.112:8096; inclure /etc/nginx/snippets/proxy.conf; } } Activez le site en créant un lien symbolique :
sudo ln -s /etc/nginx/sites-available/jellyfin /etc/nginx/sites-enabled/ Tester et recharger Nginx :
sudo nginx -t sudo systemctl reload nginx Étape 5 : Sécuriser votre domaine avec Let's Encrypt TLS
Pour sécuriser votre domaine, utilisez Let's Encrypt pour émettre des certificats gratuits :
sudo certbot --nginx -d jelly.votredomaine.com Certbot configure automatiquement SSL dans votre fichier de site Nginx. Pour garantir le renouvellement automatique des certificats, vérifiez que le minuteur systemd est actif :
sudo systemctl list-timers | grep certbot Étape 6 : Intégration de Cloudflare pour une sécurité accrue et un contournement des ports FAI
Installer Cloudflared
Cloudflared crée un tunnel sécurisé pour acheminer le trafic via Cloudflare, contournant les restrictions des FAI sur les ports 80 et 443 :
- Téléchargez le
.debpackage de la page GitHub de Cloudflare. - Installer le paquet :
sudo dpkg -i cloudflared-version.deb
Configurer un tunnel
Authentifiez-vous avec votre compte Cloudflare :
connexion au tunnel Cloudflared Créer un nouveau tunnel :
tunnel Cloudflared créer mon tunnel Modifiez le fichier de configuration Cloudflare :
sudo nano /etc/cloudflared/config.yml Exemple de configuration :
tunnel : mon-tunnel fichier-d'informations-d'identification : /home/user/.cloudflared/my-tunnel.json entrée : - nom d'hôte : jelly.yourdomain.com service : http://localhost:8096 - service : http_status:404 Démarrer et activer le service tunnel :
sudo systemctl enable cloudflared sudo systemctl start cloudflared Principaux points à retenir
- Proxy inverse Nginx:Essentiel pour acheminer le trafic en toute sécurité et optimiser les services backend.
- Cryptage TLS:Utilisez Let's Encrypt pour sécuriser vos domaines avec des certificats SSL gratuits.
- Règles de pare-feu:Ouvrez les ports nécessaires pour HTTP (80), HTTPS (443) et SSH (22).
- Optimisation de la sécurité: Implémentez des en-têtes et une limitation de débit pour empêcher les attaques.
- Intégration Cloudflare:Utilisez les tunnels Cloudflared pour un hébergement sécurisé et adapté aux FAI.
- Automatisation: Les minuteries Systemd garantissent que les certificats SSL sont automatiquement renouvelés.
Conclusion
La configuration d'un proxy inverse Nginx sécurisé requiert une attention particulière et une configuration minutieuse, mais le jeu en vaut la chandelle. Que vous hébergez des serveurs multimédias comme Jellyfin ou que vous gériez des applications d'entreprise, ce guide vous fournit les outils et les connaissances nécessaires pour créer un environnement hautement sécurisé et performant. Grâce à des fonctionnalités comme TLS, les tunnels Cloudflare et des optimisations avancées, votre infrastructure est prête à répondre aux exigences modernes.
Source : « Arrêtez d'exposer vos applications ! Créez un proxy inverse Nginx sécurisé ! » – KeepItTechie, YouTube, 19 août 2025 – https://www.youtube.com/watch?v=MzbhS2S7H_g
Utilisation : Intégré pour référence. Brèves citations utilisées pour commentaire/analyse.
Articles de blog associés
- Maîtriser les configurations Nginx pour des performances optimales du serveur Web
- Maîtriser la configuration NGINX : comment Serverion optimise le succès de l'hébergement web B2B
- Retour sur la configuration NGINX : Serverion fait revivre l'art perdu du réglage du cache proxy
- La frontière oubliée de la configuration NGINX : l'exploration de Serverion dans la microcaching FastCGI