Le point sur les reverse proxies
Un reverse proxy ? Pour quoi faire ?
Les serveurs Web (Apache, IIS, NGinx) ont été conçus à la base pour stocker des contenus statiques (Images, pages Html, css, Javascript, …). Aujourd’hui, tous les sites sont développés avec des langages dynamiques (Php, Asp, Java, Ruby, Perl, …) qui eux-même utilisent des accès en base de données (MySQL, Oracle, SQLServer, …). Les sites dynamiques demandent beaucoup plus de ressources aux serveurs.
Architecture sans reverse-proxy :
Architecture avec reverse-proxy :
C’est à ce moment qu’intervient le reverse proxy. Le mandataire habituel, permet de rendre les clients anonymes et de leur fournir du cache pour accélérer les requêtes Web. Le reverse proxy permet de cacher les serveurst d’accélérer le traitements des contenus gràce à une mise en cache. Il sert de répartiteur de charge pour plusieurs serveurs.
Les avantages de l’utilisation d’un reverse proxy sont :
- Mise en cache des requêtes / réponses
- Répartition de charge sur les serveurs internes
- Un seul point d’entrée (donc un point principal à sécuriser, un seul port à natter)
- Terminaison SSL
- Compression
Les solutions libres existantes
Apache mod_proxy
Le serveur HTTP Apache peut officier comme reverse proxy pour peu qu’on le configure avec le module mod_proxy.
Ce tuto l’explique.
Traffic Server (Apache aussi)
Traffic server est un logiciel développé et utilisé par Yahoo pour mettre en cache des milliers de leurs serveurs. Depuis, Yahoo! en a fait don à la fondation Apache.
Il est donc adapté pour les (très) grandes structures.
Si vous voulez vous y frotter, regardez la documentation officielle.
Squid
Le plus connu des proxies sous Linux, sait aussi faire reverse proxy.
Ce tuto très simple vous l’expliquera.
NGinx
NGinx c’est le serveur HTTP qui monte, qui monte …
Et en plus de faire serveur Web, il sait aussi faire reverse proxy (sinon, il serait pas dans cette liste !).
Un petit tuto pour la route (Korben).
Varnish
Il a été développé par un site norvégien à forte affluence. C’est un reverse proxy pur et dur. Il ne remplit pas d’autre fonction que celle-là, appelons-le « le spécialiste ».
Explications et mise en place ici.
Une implémentation
Bientôt, je vous ferais un article avec une implémentation de Varnish que j’ai mis en œuvre en entreprise.