Compartir a través de


Implementación del Enrutamiento de solicitud de aplicaciones en CDN

por Won Yoo

Esta sección del documento se aplica a la versión 2 del Enrutamiento de solicitud de aplicaciones de Microsoft para IIS 7 y versiones posteriores.

Objetivo

Configurar correctamente un nodo de la caché secundaria o perimetral y un nodo de la caché principal en una implementación de jerarquía de caché de 2 niveles en un entorno de red de entrega de contenido o red con almacenamiento en caché perimetral (CDN/ECN). El enfoque de este tutorial es comprender las reglas de reescritura de direcciones URL en el nodo de la caché secundaria o perimetral y en el nodo de la caché principal. En última instancia, en este tutorial se revisarán las instrucciones paso a paso para establecer la siguiente configuración:

Diagram showing an overview of the connection between the origin server, parent nodes, child nodes, and S A N.

Algunos de los aspectos destacados de esta configuración son los siguientes:

  • La búsqueda de origen se realiza mediante el nodo de la caché secundaria o perimetral.

    • La lista de clientes (es decir, la lista de servidores de origen aceptables) se administra explícitamente mediante una asignación de reescritura en la reescritura de direcciones URL.
    • Los nombres de host que no se encuentran en el mapa de reescritura se bloquean.
  • El nodo de la caché principal está, en su mayor parte, configurado como proxy de reenvío.

  • SAN está configurado para que lo compartan los nodos de la caché secundaria o perimetral.

    • De hecho, hay 3 niveles de caché:

      1. Nodo de la caché secundaria o perimetral.
      2. SAN.
      3. Nodo de la caché primaria.

Requisitos previos

En este tutorial se da por supuesto que conoce bien las configuraciones de administración de jerarquías de caché y la caché de disco en la versión 2 de ARR. Si aún no lo ha hecho, se recomienda revisar los siguientes tutoriales antes de continuar:

Si no se ha instalado la versión 2 del Enrutamiento de solicitud de aplicaciones, puede descargarla en:

  • Descargue la versión 2 del enrutamiento de solicitud de aplicaciones de Microsoft para IIS 7 (x86) aquí (https://download.microsoft.com/download/4/D/F/4DFDA851-515F-474E-BA7A-5802B3C95101/ARRv2_setup_x86.EXE).
  • Descargue la versión 2 del enrutamiento de solicitud de aplicaciones de Microsoft para IIS 7 (x64) aquí (https://download.microsoft.com/download/3/4/1/3415F3F9-5698-44FE-A072-D4AF09728390/ARRv2_setup_x64.EXE).

Siga los pasos descritos en el artículo Instalación del Enrutamiento de solicitud de aplicaciones versión 2 para instalar la versión 2 de ARR.

Configuración del nodo de la caché secundaria o perimetral

Paso 1: Configurar la caché de disco

Configure y habilite la caché de disco siguiendo el artículo Instalación del Enrutamiento de solicitud de aplicaciones versión 2. En este artículo también se describe cómo configurar un entorno SAN para usarlo como una ubicación de unidad de caché secundaria.

Paso 2: Definir una granja de servidores para nodos de la caché primaria

Defina una granja de servidores y agregue nodos de la caché principal siguiendo el artículo Administración de jerarquías de caché mediante el Enrutamiento de solicitud de aplicaciones.

Paso 3: Elaborar reglas de reescritura de direcciones URL adicionales para el nodo de la caché secundaria o perimetral

En este momento, con myParentCacheNodes como nombre de la granja de servidores, se ha escrito la siguiente regla de reescritura de direcciones URL en el archivo applicationHost.config, ubicado en %windir%\system32\inetsrv\config\:

<rewrite>
   <globalRules>
      <rule name="ARR_myParentCacheNodes_loadbalance" patternSyntax="Wildcard" stopProcessing="true">
         <match url="*" />
         <action type="Rewrite" url="http://myParentCacheNodes/{R:0}" />
      </rule>
   </globalRules>
</rewrite>

La regla anterior no es suficiente para una implementación de CDN/ECN porque los nodos de la caché están en capas y el siguiente nivel de nodos de la caché (es decir, los nodos de la caché primaria) no sabrían cómo encontrar los servidores de origen cuando falta la caché en el nivel de caché primaria.

En este tutorial se soluciona el problema al hacer que el nodo de la caché secundaria asigne el servidor de origen antes de que la solicitud se enrute al nodo de la caché primaria. Hay dos formas más habituales de asignar los servidores de origen en función de la dirección URL que recibe el nodo de la caché secundaria:

  1. El cliente de la red CDN/ECN se especifica como subdominio. En este caso, puede haber muchos enlaces de nombre de host a la misma dirección IP del nodo de la caché secundaria.
    Por ejemplo, http://customer1.mycnd.net/, http://customer2.mycdn.net/, etc.
  2. El cliente de la red CDN/ECN se especifica como la primera ruta de acceso de la dirección URL.
    Por ejemplo, http://static.mycdn.net/customer1/, http://static.mycdn.net/customer2/, etc.

En este tutorial, para la demostración se usa el primer ejemplo. También se pueden escribir reglas similares para habilitar el segundo escenario.

  1. Defina las asignaciones de reescritura de direcciones URL que se pueden usar para buscar el nombre de host del servidor de origen. Inicie el Administrador de IIS.

  2. Seleccione y expanda la raíz del servidor. Este es el nodo de la caché secundaria (perimetral).

    Screenshot showing the child cache node expanded.

  3. Haga doble clic en Reescritura de URL.

  4. En el panel Acciones, haga clic en Ver asignaciones de reescritura.

    Screenshot of the Actions pane showing the View Rewrite Maps option.

  5. En el panel Acciones, haga clic en Agregar asignación de reescritura.

    Screenshot of the Actions pane showing the Add Rewrite Map option.

  6. En el cuadro de diálogo Agregar asignación de reescritura, asigne un nombre a la asignación de reescritura, OriginServers.

    Screenshot of the Add rewrite map dialog showing OriginServers in the input box.

  7. En la asignación de reescritura, identificará explícitamente la asignación entre el nombre de host que recibe el nodo de la caché secundaria y los nombres de host de origen correspondientes. En el panel Acciones, haga clic en Agregar entrada de asignación....

    Screenshot of the Actions menu showing the Add Mapping Entry option.

  8. En el cuadro de diálogo Agregar entrada de asignación, agregue el nombre de host que recibe el nodo de la caché secundaria y el nombre de host de origen. En el ejemplo siguiente, el encabezado de nombre de host del nodo de la caché secundaria de ARR es customer1.mycdn.net. El servidor de origen correspondiente es images.customer1.com.

    Screenshot of the Add Mapping Entry dialog with the example information entered.

  9. Repita el Paso 8 tantas veces como sea necesario para incluir todos los clientes a los que la red CDN/ECN proporciona servicios. Así es como puede administrar la lista explícita de los clientes para asegurarse de que el servicio solo se proporciona a sus clientes.

  10. Para bloquear los clientes que no están en la lista de asignación de reescritura, establezca el valor predeterminado de esta asignación de reescritura en #, que es un carácter no válido que no se puede usar como parte del encabezado de nombre de host, por cada RFC. En el panel Acciones, haga clic en Editar configuración de la asignación....

    Screenshot of the Actions menu.

  11. En el cuadro de diálogo Editar asignación de reescritura, escriba # como valor predeterminado para esta asignación de reescritura.

    Screenshot of the Edit Rewrite Map dialog. The character # is in the Default value to use when key is not found in the map input box. OK is selected.

  12. Vuelva a escribir el encabezado de nombre de host con las reglas configuradas en la asignación de reescritura OriginServers. Cuando se produce un error en la memoria caché y la solicitud se enruta al nodo de la caché primaria, la solicitud tendrá el nombre de host que coincide con el servidor de origen. Por este motivo, en su mayor parte, el nodo de la caché primaria está configurado como proxy de reenvío. Cuando se produce un error de caché en el nodo de la caché primaria, la solicitud simplemente se enruta al servidor de origen en función del encabezado de nombre de host que recibe el nodo de la caché primaria.

  13. En la interfaz de usuario de reescritura de URL, busque la regla. En este tutorial, el nombre de la regla debe ser ARR_myParentCacheNodes_loadbalance.

    Screenshot showing the example rule settings.

  14. Seleccione la regla y, en el panel Acciones, haga clic en Editar.

  15. Haga clic en Agregar condiciones para agregar dos reglas.

  16. La primera regla usará la asignación de reescritura OriginServers que se creó en el Paso 6. La siguiente regla coincidirá con el encabezado de host como clave para que coincida con las entradas de OriginServers:

    Screenshot of the Add Condition dialog showing origin server data with Pattern is set to *.

  17. La segunda regla establecerá el valor predeterminado # cuando el encabezado de host no coincida con las entradas de OriginServers. Tal como se indicó anteriormente, # no es un carácter válido y no se puede usar como nombre de host. La siguiente regla se usa más adelante para asegurarse de que solo los clientes (representados por nombres de host) en OriginServers reciben servicio de ARR:

    Screenshot of the Add Condition dialog with Pattern set to the default.

  18. Seleccione Seguimiento de grupos de capturas entre condiciones.

  19. Para establecer los valores de HTTP_HOST a fin de que coincidan con las condiciones anteriores, haga clic en Variables de servidor.

  20. Escriba los siguientes valores para restablecer HTTP_HOST:

    Screenshot of the Server Variables dialog.

  21. Haga clic en Aceptar para guardar los cambios.

  22. En el panel Acciones, haga clic en Aplicar para guardar los cambios.

  23. Para comprobar que se han escrito las reglas correctas, abra el archivo applicationHost.config mediante el Bloc de notas. El archivo de configuración se encuentra en %windir%\system32\inetsrv\config\.

  24. Busque la regla de reescritura de direcciones URL para la granja de servidores, myParentCacheNodes. Debería tener este aspecto:

    <rewrite>
       <globalRules>
          <rule name="ARR_myParentCacheNodes_loadbalance" patternSyntax="Wildcard" stopProcessing="true">
             <match url="*" />
             <conditions trackAllCaptures="true">
                <add input="{OrigServers:{HTTP_HOST}}" pattern="*" />
                <add input="{C:1}" negate="true"  pattern="#" />
             </conditions>
             <serverVariables>
                <set name="HTTP_HOST" value="{C:1}" replace="true" />
             </serverVariables>
             <action type="Rewrite" url="http://myParentCacheNodes/{R:0}" />
          </rule>
       </globalRules>
    </rewrite>
    
  25. Se recomienda encarecidamente. Para bloquear las solicitudes que no coinciden con los nombres de host definidos en la asignación de reescritura anterior, cree una regla de reescritura de dirección URL predeterminada que envíe una respuesta 400 a estas solicitudes.

    Inicie el Administrador de IIS.

  26. Seleccione y expanda la raíz del servidor. Este es el nodo de la caché secundaria (perimetral).

    Screenshot showing a server expanded.

  27. Haga doble clic en Reescritura de URL.

  28. En el panel Acciones, haga clic en Agregar reglas.

    Screenshot of the Actions menu showing the Add Rules option.

  29. En el cuadro de diálogo Agregar reglas, seleccione Regla en blanco.

    Screenshot of the Add rules dialog with Blank rule selected.

  30. Escriba los valores siguientes y guarde la regla:
    Nombre: Not my customer.
    Con: Caracteres comodín.
    Patrón *:
    Tipo de acción: Respuesta personalizada.
    Código de estado: 400.
    Código de subestado: 0.

    Screenshot showing the rules variable dialog.

  31. El orden de las reglas es importante. Las reglas de reescritura de direcciones URL se procesan de arriba abajo. En este ejemplo, si el nombre de host de entrada coincide con uno de los nombres de host especificados en la asignación de reescritura anterior, se ejecuta la primera regla, ARR_myParentCacheNodes_Loadbalance. Si el nombre de host de entrada no coincide con ninguno de los nombres de host definidos en la asignación de reescritura anterior, se ejecuta la segunda regla, Not my client.

    Screenshot showing 2 rules.

  32. Se ha completado la configuración del nodo de la caché secundaria o perimetral.

Para simplificar la configuración de nodos adicionales de la caché secundaria, se puede usar una configuración compartida para que solo haya lugar a fin de administrar la configuración del nodo de la caché secundaria. De lo contrario, los cambios de configuración anteriores se deben realizar individualmente en todos los nodos de la caché secundaria del entorno de CDN/ECN. Para obtener más información sobre la configuración compartida, vea el artículo Configuración compartida.

Configuración del nodo de la caché primaria

Hay dos maneras de configurar ARR como nodo de la caché primaria:

  1. Configurar ARR como proxy de reenvío.
  2. Configurar ARR como proxy "inverso" con la asignación de reescritura.

Incluso con la segunda opción anterior, la asignación de reescritura simplemente reescribe el nombre de host de entrada con el mismo valor, lo que lo convierte en un proxy de reenvío. La asignación de reescritura se usa para configurar explícitamente la lista de nombres de host que aceptará la caché primaria, similar a la configuración del nodo de la caché secundaria anterior. En esta segunda parte del tutorial, el nodo de la caché primaria se configurará con la primera opción como proxy de reenvío sencillo.

Paso 1: Configurar la caché de disco

Configure y habilite la caché de disco siguiendo el artículo Configuración y habilitación de la caché de disco en el Enrutamiento de solicitud de aplicaciones.

Paso 2: Configurar ARR como proxy de reenvío

  1. Habilite ARR como proxy. Inicie el Administrador de IIS.

  2. Esta configuración no implica ninguna granja de servidores. Todas las configuraciones se realizan en el nivel de servidor.

    Screenshot showing the server with expanded selections. The server name is highlighted.

  3. Haga doble clic en Caché del Enrutamiento de solicitud de aplicaciones.

    Screenshot showing the connections and main panes. The main pane shows the server function icons.

  4. En el panel Acciones, haga clic en Configuración del proxy del servidor.

    Screenshot of the Actions pane showing the Server Proxy Settings option.

  5. Active la casilla Habilitar proxy y, después, haga clic en Aplicar. Acaba de habilitar ARR como proxy en el nivel de servidor.

  6. Para convertir ARR en un proxy de reenvío, haga clic en el nodo de servidor en el panel de navegación.

    Screenshot showing navigation options.

  7. Haga doble clic en Reescritura de URL.

  8. En el panel Acciones, haga clic en Agregar reglas....

    Screenshot of the Actions pane showing the Add Rules option.

  9. En el cuadro de diálogo Agregar reglas, seleccione Regla en blanco.

    Screenshot showing the Add rules dialog. The Blank rule icon is highlighted.

  10. Escriba los valores siguientes y guarde la regla:
    Nombre: Forward proxy.
    Con: Caracteres comodín.
    Patrón *:
    Condiciones:
    Entrada: {HTTP_HOST}.
    Tipo: Coincide con el patrón.
    Patrón *:
    Tipo de acción: Reescritura.
    URL de reescritura: http://{C:1}/{R:0}.

    Screenshot showing the dialog with the example values.

  11. La configuración del nodo de la caché primaria está completa.

    Para simplificar la configuración de nodos adicionales de la caché primaria, se puede usar una configuración compartida para que solo haya lugar a fin de administrar la configuración del nodo de la caché primaria. De lo contrario, los cambios de configuración anteriores se deben realizar individualmente en todos los nodos de la caché primaria del entorno de CDN/ECN. Para obtener más información sobre la configuración compartida, vea el artículo siguiente.

Resumen

Ahora ha configurado correctamente los nodos de la caché secundaria y los de la caché primaria en una jerarquía de caché de 2 niveles CDN/ECN mediante reglas avanzadas de reescritura de direcciones URL. Para comprobar la función, puede seguir el Paso 4 y el Paso 5 del artículo Configuración y habilitación de la caché de disco en el Enrutamiento de solicitud de aplicaciones. Si hay errores, habilite las reglas de seguimiento de solicitudes con errores siguiendo los pasos descritos en el artículo Uso de reglas de seguimiento de solicitudes con errores para solucionar problemas del Enrutamiento de solicitud de aplicaciones.

Para consultar otros tutoriales de la versión 2 de ARR, vea los documentos del artículo Introducción al Enrutamiento de solicitud de aplicaciones versión 2.