Réseau: Les Reverse Proxy Web

Portrait de fira

Qu'est ce qu'un reverse proxy ?

Un proxy, souvent appelé en Français "Mandataire", est un soft à qui on va pouvoir déleguer des requêtes.
Il va ainsi faire la requête à la place de l'utilisateur et lui renvoyer son résultat.
Plus simplement dit, c'est un simple intermédiaire.

Un reverse proxy lui, comme son nom indique, le fait de façon inverse:
plutôt que de faire une requête à la place d'un utilisateur,
on va l'utiliser pour reçevoir une requête à la place d'un serveur.

A quoi ça sert ?

En 'interceptant' la requête, on va pouvoir rajouter tout un tas d'opérations:
- Vérifications Anti-Virus ou IDPS pour protéger ses serveurs
- Mise en cache des page web pour qu'elles soient servies plus rapidement
- Rediriger vers un serveur fonctionnel pour avoir une redondance
- Rediriger vers un serveur pour faire de l'équillibrage de charge
- Contrôle d'accès sur des softs ne le faisant pas (tel ElasticSearch)

Quels programme utiliser pour ça ?

Il faut savoir qu'aujourd'hui beaucoup d'entreprises utilisent des boitiers hardware spécialisés pour ces opérations.
Du côté open source, on utilise très souvent trois softs :

  • Apache avec mod_proxy, car il est déjà maitrisé par de nombreuses personnes
  • nginx, car il est plus léger, performant et était de base conçu pour cet usage
  • HAProxy, qui est dédié à cette utilisation et utilisé par de grands sites tels Reddit

Exemple avec un proxy et plusieurs sites

Exemple de partage de charge

Exemple de failover

Exemple pratique, syntaxe typique

Les problèmes de ces architectures

Conclusion

Domaine: