Proxy cache con IIS Application Request Routing

Introducción

IIS Application Request Routing (ARR) es una extensión que permite aumentar la escalabilidad y la fiabilidad de las aplicaciones Web desplegadas sobre IIS mediante el enrutamiento de peticiones basado en reglas, permitiéndonos añadir balanceo de carga  o cache de contenidos de manera muy simple.

En concreto nos vamos a centrar en implementar un proxy que actuará como cache aliviando en número de peticiones que recibirá nuestro servidor Web. El proxy cache se sitúa entre el servidor Web y los clientes y cachea a a disco contenidos que de otra manera tendrían que ser descargados desde el servidor Web.

Un uso típico de un proxy cache es actuar con ‘edge server’. Un ‘edge server’ es un servidor más cercano a los clientes que consume el contenido. Supongamos una empresa que tiene una aplicación Web desplegada en La Coruña y que tiene delegaciones en Madrid, Bilbao y Seattle. Supongamos que esa aplicación Web por ejemplo utiliza Smooth Streaming para servir videos. Se hace evidente que contar con un proxy cache en las delegaciones que se encargue de cachear los videos servidos (o cualquier otro contenido pesado) de manera trasparente tendrá un efecto muy beneficioso en varios aspectos: mejorar la experiencia de usuario que tendrá que esperar menos para tener los contenidos disponibles, aliviar la carga soportada por el servidor web y minimizar el consumo de ancho de banda ya que si un contenido está en la cache no tendrá que pedirlo hasta el servidor Web lejano.

Veamos a continuación los pasos necesarios para montar un proxy cache con IIS Application Request Routing.

Instalar IIS Application Request Routing en nuestro IIS

Sin duda la manera más cómoda de instalar ARR es utilizar el Microsoft Web Platform Installer, basta con descargarlo, ejecutarlo y seleccionar Application Request Routing y pulsar el botón Install.

image

Una vez terminada la instalación en Internet Information Server (IIS) Manager, si seleccionamos el nodo raíz de nuestro servidor, veremos un nuevo icono en la sección IIS llamado Application Request Routing Cache.

image

Configurar la caché de disco

Para configurar el lugar donde nuestro proxy almacenara los archivos cacheados pinchamos en el icono de Application Request Routing Cache y veremos la siguiente pantalla.

image

Tras pinchar en Add Drive… podremos configurar la ruta en la que se almacenarán los archivos cacheados.
Precaución: esta carpeta debe existir de antemano, sino no recibiremos ningún error pero la carpeta no se creara y nada se cacheará.

image

Activar el proxy y configurar sus propiedades

Para configurar las propiedades del proxy pinchamos en Server Proxy Settings…

image

En la pantalla Application Request Routing que aparece, para activar el proxy marcamos la casilla Enable proxy

image

El siguiente paso es habilitar la cache en disco y para optimizar la cache para eventos de video online marcar el check Enable request consolidation (más información sobre esta característica).

image

Para lograr que se cacheen peticiones con respuestas de tamaño considerable como por ejemplo porciones de video es necesario incrementar el valor de Response buffer threshold a 2048 KB.

image

Por último en Proxy Type debemos asegurarnos de que están marcados Use URL Rewrite to inspect incoming request y Enable SSL offloading (este último check hará que la comunicación entre el servidor Web y el proxy no se haga por SSL aunque la petición sea SSL si confiamos en la red por la que se realizarán las comunicaciones ahorraremos la carga adicional que supone SSL).

El paso final es introducir en Reverse Proxy la dirección del servidor Web para el que estamos configurando el proxy (p.e.: www.koalink.tv).

image

Ahora solo queda un último paso: que todos los clientes que queramos que usen este proxy resuelvan la dirección del servidor Web a la dirección del proxy, mediante la configuración adecuada del DNS de los clientes o de su archivo HOSTS (c:windowssystem32driversetchosts

Comprobar el funcionamiento del proxy

La primera comprobación que debemos hacer es que el proxy está respondiendo. Para ello simplemente apuntaremos el navegador a http://localhost y debemos recibir exactamente la misma respuesta que si navegásemos directamente al servidor Web directamente.

La segunda es ver que tras un numero significativo de peticiones existen ficheros en el directorio de disco que hemos configurado para la cache (c:cache en este caso).

La tercera es ver que los contadores de estado de la cache, en la pantalla principal de Application Request Routing Caching, empiezan a mostrar actividad:

image

Referencias adicionales

Application Request Routing

Configure Request Consolidation Feature in Application Request Routing

Configure and Enable Disk Cache in Application Request Routing

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *