Configuración de la arquitectura de implementación en 3 niveles mediante el enrutamiento de solicitud de aplicaciones

por el equipo de IIS

Información general

En este tema se describen los pasos para configurar una arquitectura de implementación de 3 niveles mediante el enrutamiento de solicitud de aplicaciones. La arquitectura de implementación de 3 niveles consta de un nivel web, un nivel de servidor de aplicaciones y un nivel de datos, como se muestra a continuación:

Diagrama de tres niveles de implementación de arquitectura y sus conexiones entre sí.

Normalmente, en este escenario de implementación, el contenido estático lo sirven los servidores de nivel 1, mientras que la lógica de negocios la sirve el contenido dinámico en los servidores de nivel 2.

Objetivo

Configurar la arquitectura de implementación en 3 niveles mediante el enrutamiento de solicitud de aplicaciones. En este tutorial, el enfoque es cómo configurar el servidor ARR para que sirva contenido estático directamente desde el servidor ARR al reenviar las solicitudes de contenido dinámico a los servidores de aplicaciones.

Requisitos previos

Este tutorial requiere los siguientes requisitos previos:

  • IIS 7.0 o una versión posterior en Windows 2008 (cualquier SKU) o una versión más reciente
  • Versión 1 del Enrutamiento de solicitud de aplicaciones de Microsoft y módulos dependientes
  • Un mínimo de dos servidores de contenido con sitios y aplicaciones en funcionamiento
  • Contenido estático disponible en el servidor de enrutamiento de solicitud de aplicaciones

Siga los pasos descritos en este documento para instalar el Enrutamiento de solicitud de aplicaciones.

Otro requisito previo es que haya definido y configurado una granja de servidores mediante los pasos descritos en Definición y configuración de un grupo de servidores de Enrutamiento de solicitud de aplicaciones (ARR).

Paso 1: Cambio de las reglas de reescritura de URL para filtrar las solicitudes estáticas.

En este paso, se cambian las reglas de reescritura de direcciones URL para que las solicitudes de determinadas extensiones o rutas de acceso se atiendan directamente desde el servidor de enrutamiento de solicitud de aplicaciones. Las solicitudes estáticas se pueden identificar examinando las extensiones de archivo, como .jpg o .gif. Si los recursos estáticos están contenidos en determinadas carpetas, como /images/, las reglas de reescritura de direcciones URL pueden buscar la ruta de acceso en la dirección URL.

En este tutorial, cambiará las reglas de reescritura de direcciones URL para buscar extensiones .jpg y .css, junto con la carpeta /images/. Si el recurso solicitado tiene una extensión .jpg o .css, se atenderá directamente desde el servidor ARR. Del mismo modo, si la dirección URL solicitada contiene /images/, esta solicitud se atenderá desde el servidor ARR. Todas las demás solicitudes se reenviarán a los servidores de aplicaciones detrás del servidor ARR.

Antes de continuar, asegúrese de que el contenido estático está disponible en el servidor ARR que va a atender. El contenido puede estar disponible localmente en el servidor de ARR o en el contenido compartido.

Para cambiar las reglas de reescritura de direcciones URL mediante la interfaz de usuario:

  1. Inicie el Administrador de IIS.
  2. Seleccione la granja de servidores myServerFarm, que se creó en Definición y configuración de un grupo de servidores de Enrutamiento de solicitud de aplicaciones (ARR).
  3. Se muestran los iconos siguientes:
    Captura de pantalla del cuadro de diálogo Granja de servidores.
  4. Haga doble clic en Reglas de enrutamiento. Escriba *.jpg y *.css en el cuadro de texto Requests with the following extensions are not forwarded (Las solicitudes con las extensiones siguientes no se reenvían). Las diferentes extensiones están separadas por comas (,). Para hacer coincidir la ruta de acceso en la dirección URL, escriba */image/* en el cuadro de texto Requests with the following patterns are not forwarded (Las solicitudes con las extensiones siguientes no se reenvían). El carácter comodín (*) se usa para hacer coincidir con cualquier carácter antes y después de la ruta de acceso /image/.
    Captura de pantalla de la sección Enrutamiento de la pantalla Reglas de enrutamiento.
  5. Para comprobar que las imágenes estáticas se sirven desde el servidor ARR, inspeccione los registros. De forma predeterminada, los registros están en c:\inetpub\logs\LogFiles\. En los servidores de aplicaciones detrás del servidor ARR, no debe haber ninguna solicitud que haga referencia a *.jpg, *.css o */images/* en el archivo de registro.

Para cambiar las reglas de reescritura de direcciones URL mediante la línea de comandos:

  1. Abra un símbolo del sistema con privilegios de administrador.

  2. Vaya a %windir%\system32\inetsrv.

  3. Para borrar todas las reglas de reescritura de direcciones URL, escriba:

    appcmd.exe clear config -section:system.webServer/rewrite/globalRules
    

Para cambiar las reglas de enrutamiento para que las solicitudes de recursos con extensiones *.jpg y *.css y una ruta de acceso que coincida con */images/* no se reenvíen a los servidores de aplicaciones, escriba:

  • appcmd.exe set config  -section:system.webServer/rewrite/globalRules 
    /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True']"
     /commit:apphost
    
  • appcmd.exe set config  -section:system.webServer/rewrite/globalRules 
    /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].match.url:"*"  
    /commit:apphost
    
  • appcmd.exe set config  -section:system.webServer/rewrite/globalRules 
    /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].conditions.
    [input='EXT_{URL}',negate='True',pattern='*.jpg']" 
    /commit:apphost
    
  • appcmd.exe set config  -section:system.webServer/rewrite/globalRules 
    /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].conditions.
    [input='EXT_{URL}',negate='True',pattern='*.css']" 
    /commit:apphost
    
  • appcmd.exe set config  -section:system.webServer/rewrite/globalRules 
    /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].conditions.
    [input='{URL}',negate='True',pattern='*/images/*']" 
    /commit:apphost
    
  • appcmd.exe set config  -section:system.webServer/rewrite/globalRules 
    /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].action.type:"Rewrite" 
    /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].action.url:"http://myServerFarm1/{R:0}"  
    /commit:apphost
    

Resumen

Ha cambiado correctamente las reglas de reescritura de direcciones URL mediante la interfaz de usuario de enrutamiento de solicitud de aplicaciones para habilitar un escenario de arquitectura de implementación de 3 niveles. Para obtener más propiedades y funcionalidades de Enrutamiento de solicitud de aplicaciones, consulte el tutorial Equilibrio de carga HTTP mediante el Enrutamiento de solicitud de aplicaciones (ARR).

Cuando ARR se usa como proxy inverso, el escenario se puede mejorar aún más cuando se usa con la versión 2 de reescritura de URL que tiene la característica para reescribir los encabezados de respuesta y el cuerpo de la entidad.