Contactez nous

info@serverion.com

Appelez nous

+1 (302) 380 3902

Guide complet pour créer un proxy inverse Nginx sécurisé

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.

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 :

  1. En-têtes de sécurité:
    sudo nano /etc/nginx/snippets/security-headers.conf 
    Définissez des en-têtes de sécurité pour améliorer la protection :
    add_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff"; add_header X-XSS-Protection "1; mode=block"; 
  2. Paramètres du proxy:
    sudo nano /etc/nginx/snippets/proxy.conf 
    Optimisez les flux longs et évitez les réponses lentes :
    dé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 ; 
  3. Limites de taux:
    sudo nano /etc/nginx/snippets/rate-limit.conf 
    Atténuer les demandes excessives :
    limite_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 :

  1. Téléchargez le .deb package de la page GitHub de Cloudflare.
  2. 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

fr_FR