Pound : Installation et Configuration d'un Reverse Proxy
Contents
1 Introduction
Un reverse proxy (« proxy inverse » en français, ou surrogate en terminologie anglaise) est un type de serveur proxy, habituellement placé en frontal de serveurs web. Il est à différencier dans son utilisation des serveurs mandataires traditionnels.
Le proxy inverse est implémenté du côté des serveurs Internet. L'utilisateur du web passe par son intermédiaire pour accéder aux applications de serveurs internes. Cette technique permet entre autres de protéger un serveur web des attaques provenant de l'extérieur.
Cette technologie est employée dans les solutions de sécurité applicative.
Il existe plusieurs applications reconnues pour les proxy inverses :
- Sécurité : la couche supplémentaire apportée par les proxy inverses peut apporter une sécurité supplémentaire. La ré-écriture programmable des URL permet de masquer et de contrôler, par exemple, l'architecture d'un site web interne. Mais cette architecture permet surtout le filtrage en un point unique des accès aux ressources web.
- Accélération SSL : le proxy inverse peut être utilisé en tant que « terminateur SSL », par exemple par le biais de matériel dédié,
- Répartition de charge : le proxy inverse peut distribuer la charge d'un site unique sur plusieurs serveurs web applicatifs. Selon sa configuration, un travail de ré-écriture d'URL sera donc nécessaire,
- cache : le proxy inverse peut décharger les serveurs web de la charge de pages/objets statiques (pages HTML, images) par la gestion d'un cache local. La charge des serveurs web est ainsi généralement diminuée,
- Compression : le proxy inverse peut optimiser la compression du contenu des sites.
Après quelques recherches, il semblerait que ce Pound réponde comme l'une des meilleures solutions pour faire du reverse proxy. On peut également en faire avec Apache, Lighttpd, Nginix...
Mais vraisemblablement, c'est Pound qui sort du lot grâce car :
- Il est léger et performant (fonctionne très bien avec + de 600 connections/sec)
- On peu faire évoluer la configuration simplement pour faire du Load Balancing
- Il est capable de gérer les sessions
2 Installation
Pour l'installer, c'est simple :
apt-get |
apt-get install pound |
3 Configuration
3.1 default
Configurez le /etc/default/pound si vous souhaitez qu'il démarre automatiquement :
/etc/default/pound |
startup=1 |
3.2 Basique Reverse Proxy
Ici, j'ai un apache qui tourne en local sur le port 8080 et j'ai donc Pound qui écoute sur le port 80 :
3.3 Basique Load Balancée
Pour une configuration nous allons tenter une redirection avec IP ou VirtualHost :
Ici, notre serveur écoute sur le port 80 de l'IP 192.168.0.200. Si on utilises le VirtualHost deimos.fr, il y aura redirection sur l'ip 192.168.0.1:80. Sinon si c'est mavro.fr, la redirection se fera sur l'adresse 192.168.0.2:80.
Vous l'aurez compris, c'est assez simple.
Note : Le développeur de Pound ne recommande pas d'utiliser les VirtualHosts et de le faire faire par la couche inférieure.
Important : Sachez qu'il est impossible de faire du VirtualHost avec du https. Ceci est dû à une limitation du protocole et non à Pound spécifiquement.
4 Ressources
http://www.apsis.ch/pound/index_html
http://www.cyberciti.biz/faq/linux-http-https-reverse-proxy-load-balancer