🔄 Module L14 – Le reverse-proxy

📘 Cours complet ⏱️ 2h 🎯 Bloc 2 – Administration Linux
Objectifs : comprendre le rôle d’un reverse-proxy, ses avantages, et savoir le mettre en œuvre avec Nginx.

📖 Introduction

Un reverse-proxy (ou proxy inverse) est un serveur qui se place devant un ou plusieurs serveurs web. Il reçoit les requêtes des clients, les achemine vers le serveur approprié, puis renvoie la réponse. Il est utilisé pour la répartition de charge, la sécurité, la mise en cache, le SSL/TLS termination et la publication de plusieurs applications sur un même port.

🎯

À l'issue de ce module, vous serez capable de :

  • Expliquer le rôle d'un reverse-proxy.
  • Configurer Nginx en tant que reverse-proxy.
  • Mettre en place la terminaison SSL.
  • Comprendre la répartition de charge (load balancing).

🔍 Qu'est-ce qu'un reverse-proxy ?

Contrairement au proxy direct (côté client), le reverse-proxy est côté serveur. Il agit comme une porte d'entrée unique vers les applications internes.

📐 Comparaison proxy direct vs reverse-proxy

CritèreProxy directReverse-proxy
PositionDu côté clientDu côté serveur
But principalContrôle des accès sortants, anonymatProtection, répartition, performance
Configuration côté clientNécessaire (navigateur)Aucune (transparent)
ExempleSquidNginx, HAProxy

🛠️ Mise en pratique avec Nginx

Installation de Nginx

sudo apt update && sudo apt install nginx -y

Configuration d'un reverse-proxy simple

Proxy vers un serveur interne sur le port 8080

# /etc/nginx/sites-available/default
server {
    listen 80;
    server_name mon-domaine.fr;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
  • proxy_pass : définit le serveur cible.
  • proxy_set_header : transmet l'IP réelle du client.

Répartition de charge (load balancing)

upstream backend {
    server 10.0.0.2:8080;
    server 10.0.0.3:8080;
}

server {
    listen 80;
    location / {
        proxy_pass http://backend;
    }
}

Terminaison SSL

server {
    listen 443 ssl;
    ssl_certificate /etc/ssl/certs/mon-cert.pem;
    ssl_certificate_key /etc/ssl/private/mon-cert.key;

    location / {
        proxy_pass http://localhost:8080;
    }
}

📝 Exercices d'application

Exercice 1 – Reverse-proxy

Quel est l'avantage principal d'un reverse-proxy en entreprise ?

Il permet de centraliser l'accès, de répartir la charge, de sécuriser les serveurs internes et de gérer le SSL de manière centralisée.

Exercice 2 – Configuration

Écrire la directive Nginx pour proxy vers http://10.0.0.5:3000.

proxy_pass http://10.0.0.5:3000;

🎯 Quiz d'auto‑évaluation

1. Un reverse-proxy se place du côté client.

2. Nginx peut être utilisé comme reverse-proxy.

3. La directive proxy_pass indique le serveur cible.

4. La terminaison SSL permet de décharger le serveur applicatif du chiffrement.

5. Un reverse-proxy peut faire du load balancing.

📚 Ressources


← Retour au portail
BTS SIO – Lycée NDLP Avranches – Module L14 v1.0