Administrar la caducidad de contenido web en Azure Content Delivery Network

Los archivos de los servidores web de origen accesibles públicamente se pueden almacenar en caché en Azure Content Delivery Network hasta que transcurre su período de vida (TTL). El período de vida (TTL) viene determinado por el encabezado Cache-Control en la respuesta HTTP del servidor de origen. En este artículo se describe cómo establecer los encabezados Cache-Control para la característica Web Apps de Microsoft Azure App Service, Azure Cloud Services, las aplicaciones de ASP.NET y los sitios de Internet Information Services (IIS), ya que todos ellos se configuran de forma parecida. Puede establecer el encabezado Cache-Control mediante el uso de archivos de configuración o mediante programación.

También puede controlar la configuración de caché desde Azure Portal estableciendo reglas de almacenamiento en caché de la red de entrega de contenido. Si crea una o más reglas de almacenamiento en caché y establece el comportamiento de dicho almacenamiento en Invalidar u Omitir caché, se omite la configuración de almacenamiento en caché proporcionada por el origen que se trata en este artículo. Para información sobre conceptos generales de almacenamiento en caché, consulte Funcionamiento del almacenamiento en caché.

Sugerencia

Puede optar por no configurar ningún TTL en un archivo. En este caso, Azure Content Delivery Network aplica automáticamente un TTL predeterminado de siete días, a menos que haya configurado reglas de almacenamiento en caché en Azure Portal. Este TTL predeterminado solo se aplica a las optimizaciones de entrega web general. Para las optimizaciones de archivos de gran tamaño, el TTL predeterminado es un día, y para las optimizaciones de streaming multimedia, el TTL predeterminado es un año.

Para más información sobre cómo funciona Azure Content Delivery Network para acelerar el acceso a archivos y otros recursos, consulte Introducción a Azure Content Delivery Network.

Configuración de encabezados de control de caché mediante el uso de reglas de almacenamiento en caché de la red de entrega de contenido

El método preferido para establecer el encabezado Cache-Control de un servidor web consiste en usar las reglas de almacenamiento en caché en Azure Portal. Para más información sobre las reglas de almacenamiento en caché de red de entrega de contenido, consulte Control del comportamiento del almacenamiento en caché de Azure Content Delivery Network con reglas de almacenamiento en caché.

Nota:

Las reglas de almacenamiento en caché solo están disponibles para Azure CDN Estándar de perfiles de Edgio. Para perfiles Azure CDN premium de Edgio, debe usar el motor de reglas de Azure CDN en el portal Administrar para una funcionalidad similar.

Para navegar a la página de reglas de almacenamiento en caché de CDN:

  1. En Azure Portal, seleccione un perfil de red de entrega de contenido y, a continuación, seleccione el punto de conexión para el servidor web.

  2. En el panel izquierdo, debajo de Configuración, haga clic en Reglas de caché.

    Captura de pantalla del botón reglas de almacenamiento en caché de la red de entrega de contenido.

    Aparece la página Reglas de caché.

    Captura de pantalla de la página de almacenamiento en caché de la red de entrega de contenido.

Para establecer encabezados Cache-Control de un servidor web con reglas de almacenamiento en caché globales:

  1. En Reglas de almacenamiento en caché globales, establezca Comportamiento del almacenamiento en caché de cadenas de consulta en Ignorar cadenas de consulta, y establezca Comportamiento de almacenamiento en caché en Invalidar.

  2. Para Duración de expiración de caché, escriba 3600 en el cuadro Segundos o 1 en el cuadro Horas.

    Captura de pantalla del ejemplo de reglas de almacenamiento en caché global de la red de entrega de contenido.

    Esta regla de almacenamiento en caché global establece una duración de caché de una hora y afecta a todas las solicitudes para el punto de conexión. Invalida todos los encabezados HTTP Cache-Control o Expires que envía el servidor de origen especificado por el punto de conexión.

  3. Seleccione Guardar.

Para establecer encabezados Cache-Control del archivo de servidor web con reglas de almacenamiento en caché personalizadas:

  1. En Reglas de almacenamiento en caché personalizadas, cree dos condiciones de coincidencia:

    1. Para la primera condición de coincidencia, establezca Condición de coincidencia en Ruta de acceso y escriba /webfolder1/* en Match value (Valor de coincidencia). Establezca Comportamiento de almacenamiento en caché en Invalidar y escriba 4 en el campo Días.

    2. Para la segunda condición de coincidencia, establezca Condición de coincidencia en Ruta de acceso y escriba /webfolder1/file1.txt en Match value (Valor de coincidencia). Establezca Comportamiento de almacenamiento en caché en Invalidar y escriba 2 en el campo Días.

    Captura de pantalla del ejemplo de reglas de almacenamiento en caché personalizadas de la red de entrega de contenido.

    La primera regla de almacenamiento en caché personalizada establece una duración de caché de cuatro días para los archivos en la carpeta /webfolder1 en el servidor de origen especificado por el punto de conexión. La segunda regla invalida la primera regla solo en el caso del archivo file1.txt, y establece una duración de caché de dos días para él.

  2. Seleccione Guardar.

Establecimiento de los encabezados Cache-Control mediante archivos de configuración

Para el contenido estático, como imágenes y hojas de estilos, puede controlar la frecuencia de actualización al modificar los archivos de configuración applicationHost.config o Web.config de la aplicación web. Para establecer el encabezado Cache-Control para su contenido, use el elemento <system.webServer>/<staticContent>/<clientCache> en cualquiera de los archivos.

Uso de archivos ApplicationHost.config

El archivo ApplicationHost.config es el archivo raíz del sistema de configuración de IIS. El valor de la configuración del archivo ApplicationHost.config afecta a todas las aplicaciones del sitio, pero se reemplaza por la configuración de cualquier archivo Web.config existente en una aplicación web.

Uso de archivos Web.config

Con un archivo Web.config, puede personalizar el comportamiento de toda la aplicación web o de un directorio específico en la aplicación web. Por lo general, tiene al menos un archivo Web.config en la carpeta raíz de la aplicación web. Para cada archivo Web.config de una carpeta específica, el valor de la configuración afecta a todo lo que haya en esa carpeta y sus subcarpetas, a menos que otro archivo Web.config la invalide a nivel de subcarpeta.

Por ejemplo, puede establecer un elemento <clientCache> de un archivo Web.config en la carpeta raíz de la aplicación web para almacenar en caché todo el contenido estático en la aplicación web durante tres días. También puede agregar un archivo Web.config a una subcarpeta con contenido más variable (por ejemplo, \frequent) y establecer el elemento <clientCache> para almacenar en caché contenido de la subcarpeta durante seis horas. El resultado neto es que el contenido de todo el sitio web se almacenará en caché durante tres días, excepto el contenido del directorio \frequent, que se almacenará en caché solo durante seis horas.

En el archivo de configuración XML de ejemplo siguiente se muestra cómo establecer el elemento <clientCache> para especificar una antigüedad máxima de tres días:

<configuration>
    <system.webServer>
        <staticContent>
            <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="3.00:00:00" />
        </staticContent>
    </system.webServer>
</configuration>

Para usar el atributo cacheControlMaxAge, debe establecer el valor del atributo cacheControlMode en UseMaxAge. Esta configuración hace que el encabezado HTTP y la directiva, Cache-Control: max-age=<nnn>, se agreguen a la respuesta. El formato del valor del intervalo de tiempo para el atributo cacheControlMaxAge es <days>.<hours>:<min>:<sec>. Su valor se convierte en segundos y se utiliza como el valor de la directiva Cache-Controlmax-age. Para más información sobre el elemento <clientCache>, consulte el elemento Client Cache <clientCache>.

Establecimiento de los encabezados Cache-Control mediante programación

Para las aplicaciones de ASP.NET, puede controlar el comportamiento de almacenamiento en caché de la red de entrega de contenido mediante programación estableciendo la propiedad HttpResponse.Cache de la API de .NET. Para más información sobre la propiedad HttpResponse.Cache, consulte Propiedad HttpResponse.Cache y Clase HttpCachePolicy.

Para almacenar en caché mediante programación el contenido de la aplicación de ASP.NET, siga estos pasos:

  1. Compruebe que el contenido esté marcado como almacenable en caché. Para ello, establezca HttpCacheability en Public.
  2. Establezca un validador de caché mediante una llamada a uno de los métodos siguientes HttpCachePolicy:
    • Llame a SetLastModified para establecer un valor de marca de tiempo para el encabezado Last-Modified.
    • Llame a SetETag para establecer un valor para el encabezado ETag.
  3. Si lo desea, especifique una hora de expiración de caché mediante una llamada a SetExpires para establecer un valor para el encabezado Expires. En caso contrario, se aplica la heurística de caché predeterminada descrita anteriormente en este documento.

Por ejemplo, para almacenar en caché el contenido durante una hora, agregue el siguiente código de C#:

// Set the caching parameters.
Response.Cache.SetExpires(DateTime.Now.AddHours(1));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetLastModified(DateTime.Now);

Prueba del encabezado Cache-Control

Puede comprobar fácilmente la configuración de TTL de su contenido web. Con las herramientas de desarrollo del explorador, pruebe que el contenido web incluye el encabezado de respuesta Cache-Control. Asimismo, también puede usar una herramienta como wget, Postman o Fiddler para examinar los encabezados de respuesta.

Pasos siguientes