Apache reverse proxy

Alejandro el informático(@ainformatico), http://alejandroelinformatico.com/slideshows/

http://www.alejandroelinformatico.com/slideshows/es/reverse-proxy/

Alejandro el informático(@ainformatico). 2011.

Licencia Creative Commons by-nc-sa.

Reverse proxy

"Un reverse proxy es un servidor proxy instalado en el domicilio de uno o más servidores web. Todo el tráfico entrante de Internet y con el destino de uno de esos servidores web pasa a través del servidor proxy"

http://es.wikipedia.org/wiki/Proxy#Reverse_Proxy_.2F_Proxy_inverso

¿Para qué se usa?

Podemos usar un reverse proxy para diferentes fines y siempre de manera transparente, tan solo configurando el servidor.

Los escenarios más usuales son:

Balanceo de carga
Distribuye la carga a varios servidores internos.
Caché
Se guarda una caché de los elementos estáticos.
Seguridad
Se añade una capa más para proteger los servidores internos.
Se sirven sólo determinados contenidos de manera pública. Por ejemplo para acceder a una Intranet desde el exterior.
Proveer de un servicio de conexión limitado. Sólo permitimos aquello que queremos que sea accesible.

¿Cómo funciona?

El cliente realiza una petición al servidor A y éste se encarga internamente de servir los datos de manera transparente desde otro servidor, ya sea interno (B, C o D) u otro de otra red, por ejemplo Internet (Z).

Configuración

  1. Instalamos el módulo proxy_html
    1. # apt-get install libapache2-mod-proxy-html
  2. Habilitamos los módulos necesarios
    1. # a2enmod headers
    2. # a2enmod proxy
    3. # a2enmod proxy_http
    4. # a2enmod proxy_html
  3. Configuramos el sitio, en este caso un VirtualHost
  4. Configuramos, si es necesario, el DNS o los hosts apropiados
  5. Reiniciamos Apache

Ejemplo de VirtualHost


        <VirtualHost *:80>
          [...]
            ServerName reverse
          [...]
          
            ProxyRequests Off
            <Location />
              ProxyPass http://www.alejandroelinformatico.com/
              ProxyPassReverse http://www.alejandroelinformatico.com/
            </Location>
          
          [...]
        </VirtualHost>
          

Probando

Usando la configuración anterior, tan sólo hemos de apuntar nuestro navegador a la dirección http://reverse/ y deberíamos poder ver el contenido remoto, en nuestro caso http://www.alejandroelinformatico.com.

Además podemos comprobar que si navegamos a http://reverse/slideshows/ exitosamente estamos viendo http://www.alejandroelinformatico.com/slideshows/

Links

Alejandro el informático(@ainformatico), http://alejandroelinformatico.com/slideshows/