Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
unix:proxy_transparent_apache [2006/03/13 15:07]
oury
unix:proxy_transparent_apache [2010/01/12 13:29] (current)
Line 1: Line 1:
 +Cette technique du proxy transparent est quelques peu différents des proxy que l'on a l'​habitude de voir.
  
 +Ce dernier permettra à partir d'une URL connu et fixe (exemple: http://​google.gcu.org)\\ ​
 +d'​avoir l'​étendu du site en arrière plan sans forwarding (aka "​l'​URL dans la barre change de\\ http://​google.gcu.org"​ en "​http://​google.fr"​).
 +
 +Pour l'​exemple,​ le proxy sera implémenté sur un serveur en production.
 +Directement connecté au Web (ou DMZ + Port forwarding)
 +
 +Dans la configuration DNS, nous avons une définition de ce type :
 +<​code>​
 +google.gcu.org. ​     IN   ​A ​  ​209.238.159.117 ; www.gcu
 +</​code>​
 +Le proxy transparent sera intégré sur un Apache.
 +Peu importe la version, la configuration est la même.
 +Cependant, pour les besoins de l'​astuce,​ cela a été testé sur un Apache2
 +
 +Tout d'​abord,​ définissez les modules suivants dans (votre|vos) fichier(s) de configuration :
 +
 +<code apache>
 +-------------------------------------------------------
 +LoadModule cache_module /​usr/​lib/​apache2/​modules/​mod_cache.so
 +LoadModule disk_cache_module /​usr/​lib/​apache2/​modules/​mod_disk_cache.so
 +LoadModule proxy_module /​usr/​lib/​apache2/​modules/​mod_proxy.so
 +LoadModule proxy_http_module /​usr/​lib/​apache2/​modules/​mod_proxy_http.so
 +-------------------------------------------------------
 +</​code>​
 +Tout de suite après, définissez un vhost "​catch-all"​
 +cela permet d'​évitez à des gens de définir sur leur propre DNS, votre proxy comme accès, de tomber sur le premier vhost défini et de faire n'​importe quoi sur le site en background
 +
 +<code apache>
 +-------------------------------------------------------
 +<​VirtualHost *>
 +        ErrorLog /​var/​log/​apache2/​main_error.log
 +        DocumentRoot /dev/null
 +        <​Location />
 +                ProxyPass http://​perdu.com
 +                SetEnv force-proxy-request-1.0 1
 +                SetEnv proxy-nokeepalive 1
 +                Allow from all
 +        </​Location>​
 +</​VirtualHost>​
 +-------------------------------------------------------
 +</​code>​
 +Le premier Vhost est défini pour être un proxy pour perdu.com.
 +
 +Le site n'est qu'à titre d'​exemple.
 +Son intérêt réside ... sur le message humoristique sous-jacent.
 +
 +Vous pouvez parfaitement placer un vhost "​**catch-all**"​ sans proxy. Avec une simple page par défaut\\ ​
 +- sur votre système - en modification le "​**DocumentRoot**"​ et en supprimant la partie "​**Location**"​.
 +
 +
 +Après coup, vous pouvez définir tout vos vhost-proxy comme-ceci :
 +<code apache>
 +-------------------------------------------------------
 +<​VirtualHost *>
 +        ServerName nomdedomaine.tld
 +        ServerAlias www.nomdedomaine.fr
 +        ErrorLog /​var/​log/​apache2/​n/​o/​nomdedomaine.tld.error.log
 +        CustomLog /​var/​log/​apache2/​n.o/​nomdedomaine.tld.access.log common
 +
 +        ProxyRequests on
 +        ProxyPreserveHost Off
 +        ProxyVia On
 +
 +        <​Location />
 +                ProxyPass http://​www.google.fr/​
 +                ProxyPassReverse http://​www.google.fr/​
 +                SetEnv force-proxy-request-1.0 1
 +                SetEnv proxy-nokeepalive 1
 +                Allow from all
 +        </​Location>​
 +</​Virtualhost>​
 +-------------------------------------------------------
 +</​code>​
 +
 +Les options Proxy* permettent d'​activer et de contrôler le module proxy pour cette configuration.
 +
 +Notez cependant que "​**ProxyPreserveHost Off**" cache la véritable URL final.\\ ​
 +Si vous ne voulez qu'une simple redirection,​ mettez cette option à "​**On**"​ ou utilisez "​mod_rewrite"​\\ ​
 +(qui demande moins de ressources)
 +
 +Pour la suite, c'est selon votre imagination...
unix/proxy_transparent_apache.txt · Last modified: 2010/01/12 13:29 (external edit)