Вы находитесь на странице: 1из 3

Reverse Proxy

Prsentation
Cet article ne fera rfrence qu'aux proxy et reverse proxy (proxy inverse) dans le cadre de l'utilisation des protocoles web http et https.

Dfinitions
Commenons par le proxy. Les clients http (communment des navigateurs) d'un site (un laboratoire par exemple) passent par une passerelle pour accder des serveurs situs sur le web. Les donnes sont le plus souvent mises en cache permettant ainsi une diminution de la bande passante et des rponses rapides aux requtes les plus frquentes des clients. Ces derniers sont alors vus comme une seule adresse IP par les serveurs distants. L'utilisation classique d'un proxy est connue et frquemment employe. Elle permet aussi de diminuer la ncessit de mettre un poste de travail rout sur le Net et de mettre en place un contrle ventuel des sites distants accds. Les clients ont souvent connaissance de la prsence du proxy. Inverser le fonctionnement d'un proxy pour avoir un reverse proxy revient avoir des clients http sur le web (souvent inconnus) dont les requtes passent par le proxy pour accder aux serveurs du site qui hberge aussi celui-ci. Les clients ne voient qu'une adresse IP et n'ont pas connaissance du systme mis en place. Le reverse proxy devient alors le point d'entre unique aux serveurs web d'un site.

Usages et avantages
L'utilisation d'un reverse proxy permet d'envisager une rpartition des applications web par serveur. L'approche idale est, dans bien des cas, qu'une seule application web soit hberge sur un serveur web. Mais on peut rpartir les applications sur les serveurs en fonction des langages de programmation avec lesquels elles ont t dveloppes. Pour la scurit et la stabilit du systme, il n'est pas souhaitable de mlanger applications et/ou version de langage sur un mme et seul serveur. Le point d'entre unique qu'est le reverse proxy permet un contrle des accs aux applications web. Le contrle de charge est ainsi plus ais avec une telle architecture rseau. Une rpartition de la charge est alors envisageable en fonction des besoins. Cela permet aussi de reculer les ressources sensibles d'un site, comme par exemple les bases de donnes. Ce point d'entre unique permet aussi de simplifier l'tablissement de rgle sur le firewall du site. Cela est pratique lorsque l'on se trouve dpendant d'un hbergeur. Une dclaration DNS peut suffire mais il est possible d'en avoir plusieurs si le serveur prend en charge les virtual hosts. Si un cache est utilis, les performances des pages et des donnes frquemment demandes pourront tre grandement amliores. L'utilisation de ce type de serveur en frontal de serveurs d'applications comme Zope est grandement encourage par les dveloppeurs de ce dernier. Les performances des serveurs http embarqus, par Zope et d'autres, comme les trs la mode framework MVC, sont trs faibles.

Inconvnients
Le premier inconvnient qui vient immdiatement l'esprit est que le reverse proxy devient un point central. S'il est en panne tous les serveurs web sont inaccessibles. Une compromission de celui-ci peut avoir un impact fort surtout s'il s'y trouve des donnes importantes dans le cache. Le serveur doit tre idalement dans une DMZ afin de limiter la porte d'une intrusion, permettant ainsi la mise l'cart par exemple des bases de donnes. La multiplication des machines peut aussi apparatre rdhibitoire. La mise jour des redirections et des rgles de rcritures des URL peuvent apparatre fastidieuses. L'utilisation d'un reverse proxy rend la politique de contrle d'accs par IP impossible. Les serveurs situs derrire lui ne voient qu'une adresse IP. Lors d'une migration, il faut donc veiller remplacer ce genre de contrle. Lorsque l'on utilise le protocole https, une rupture de ssl a lieu sur le reverse proxy. Mais le reverse proxy peut permettre d'ajouter https des serveurs qui en sont dpourvus comme par exemple Zope.

Mise en uvre
La dmocratisation de la virtualisation permet d'envisager la mise en place d'un tel systme sans exploser le budget quipement. Le reverse proxy sera videment le plus gourmand en ressource et ncessitera ventuellement un machine physique. Cot rseau, la mise en place d'une DMZ, dans laquelle sera install le reverse proxy, sera un plus.

Les logiciels
Un large choix de logiciels est disponible pour mettre en place un serveur reverse proxy. Les serveurs mandataires (proxy classique) ont souvent la possibilit d'en faire. Mais des logiciels ont t dvelopps dans le but spcifique de faire du reverse proxy. Les serveurs web ont aussi souvent la possibilit, par l'intermdiaire de modules optionnels, de rendre ce service. Pour le choix d'une solution, il faut bien entendu regarder les fonctionnalits du serveur. Parmi celles-ci, virtual host, ssl, cache et rcriture d'URL sont importantes. Voici la description de quelques solutions possibles parmi les logiciels libres. noter que parmi les logiciels propritaires, Microsoft propose, sur sa plateforme Windows, Internet Security and Acceleration Server (ISA Server).

Squid
Squid est un serveur proxy disponible depuis de nombreuses annes. Il permet de mettre en place un reverse proxy avec la possibilit de grer les virtual host depuis la srie 3. Il est trs stable et rapide avec une bonne gestion du cache. Il a t longtemps prfr Apache du temps o ce dernier n'tait disponible qu'en version 1.3.

Pound
Le dveloppement de Pound a t initi pour servir de solution frontale aux serveurs d'applications Zope. Il apporte ainsi le support ssl Zope qui en est dpourvu jusqu' la version 3. L'quilibre de charge est sa spcialit avec en plus une dtection de panne ventuelle d'un des serveurs.

Apache
Le serveur le plus utilis sur le Net est bien entendu capable de faire du reverse proxy. Ses

performances sont depuis la version 2 la hauteur de sa rputation. De plus, sa popularit lui permet d'avoir de trs nombreux modules optionnels. Virtual host, ssl, cache et rcritures d'URL tout y est et bien plus. Des modules trs intressants dans le cadre d'un reverse proxy existent, comme, par exemple, mod_evasive pour prvenir d'une attaque de type DOS ou DDOS et, surtout, mod_security qui surveille et protge les applications web situes derrire ce module. Il fonctionne comme un filtre bas sur un systme de rgles relativement simples crire. Le filtre s'applique sur toute requte en fonction de patterns prdfinis ou dfinis par l'utilisateur. noter que ce module peut trs bien tre utilis sans la mise en place d'un reverse proxy.

Varnish
Le petit dernier qui monte, se dcrit comme un acclrateur http. Il entre donc, plutt, dans la catgorie reverse proxy dvelopp pour cela. Il est maintenant conseill (avec Apache) par la documentation de Zope (avant c'taient Apache et Squid) et il se gratifie d'excellentes performances. tester.