Administrar la caducidad de contenido web en Azure Content Delivery Network
Importante
Azure CDN Estándar de Microsoft (clásico) se retirará el 30 de septiembre de 2027. Para evitar interrupciones del servicio, es importante que migre los perfiles de Azure CDN Estándar de Microsoft (clásico) a los nivel Estándar o Prémium de Azure Front Door antes del 30 de septiembre de 2027. Para más información, consulte Retirada de Azure CDN Estándar de Microsoft (clásico).
Azure CDN de Edgio se retirará el 15 de enero de 2025. Debe migrar la carga de trabajo a Azure Front Door antes de esta fecha para evitar interrupciones del servicio. Para más información, consulte Preguntas más frecuentes sobre la retirada de Azure CDN de Edgio..
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:
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.
En el panel izquierdo, debajo de Configuración, haga clic en Reglas de caché.
Aparece la página Reglas de caché.
Para establecer encabezados Cache-Control de un servidor web con reglas de almacenamiento en caché globales:
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.
Para Duración de expiración de caché, escriba 3600 en el cuadro Segundos o 1 en el cuadro Horas.
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
oExpires
que envía el servidor de origen especificado por el punto de conexión.Seleccione Guardar.
Para establecer encabezados Cache-Control del archivo de servidor web con reglas de almacenamiento en caché personalizadas:
En Reglas de almacenamiento en caché personalizadas, cree dos condiciones de coincidencia:
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.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.
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 archivofile1.txt
, y establece una duración de caché de dos días para él.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-Control
max-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:
- Compruebe que el contenido esté marcado como almacenable en caché. Para ello, establezca
HttpCacheability
enPublic
. - 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 encabezadoLast-Modified
. - Llame a
SetETag
para establecer un valor para el encabezadoETag
.
- Llame a
- Si lo desea, especifique una hora de expiración de caché mediante una llamada a
SetExpires
para establecer un valor para el encabezadoExpires
. 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 o Fiddler para examinar los encabezados de respuesta.