Este tema resume los métodos para solucionar problemas de caché de CDN según el síntoma: caché que no surte efecto y fallos de caché, proporción baja de aciertos de caché y proporción alta de solicitudes al origen, excepciones en encabezados de respuesta y CORS, excepciones en videos y archivos grandes, así como contenido no actualizado y excepciones de acceso.
Pasos preliminares generales
Este tema aplica a Alibaba Cloud CDN, con el nombre de dominio acelerado ya incorporado y la resolución CNAME activa. Si utiliza Dynamic Route for CDN (DCDN), algunos puntos de entrada de configuración y nombres de funciones pueden diferir. Consulte lo que se muestra realmente en la consola.
Los siguientes elementos de verificación aplican a la mayoría de los problemas de caché. Se recomienda completarlos uno por uno antes de comenzar la solución de problemas para evitar conclusiones incorrectas causadas por interferencias del entorno:
|
Elemento de verificación |
Descripción |
|
Compruebe que la resolución CNAME sea correcta |
Ejecute |
|
Verifique que la configuración haya surtido efecto a nivel mundial |
El estado de la regla en la consola debe ser Success. La entrega de la configuración a los POPs de todo el mundo suele tardar entre 3 y 5 minutos. |
|
Descarte la caché local del navegador |
Realice pruebas en modo de navegación privada o mediante |
|
Borre la caché existente de CDN |
Una nueva configuración solo se aplica a las solicitudes nuevas después de que surte efecto. Para los recursos almacenados en caché bajo la política anterior, envíe una actualización de URL o una actualización de directorio mediante Refresh and prefetch. |
Este tema utiliza el establecimiento del tiempo de expiración de la caché en 0 segundos como medida alternativa en varios puntos. Un tiempo de expiración de 0 significa que cada solicitud desencadena una solicitud al origen, lo que aumenta significativamente la carga en el servidor de origen y reduce el efecto de aceleración. Se recomienda usarlo solo para contenido dinámico que genuinamente requiere respuestas en tiempo real, como endpoints de API. No lo configure globalmente para recursos estáticos.
Determinar si se produce un acierto de caché
Antes de solucionar problemas de caché, revise los encabezados de respuesta para confirmar el estado de la caché del recurso:
Use una solicitud GET para revisar los encabezados de respuesta: Ejecute
curl -v -o /dev/null "http(s)://accelerated-domain/resource-path". Una solicitudcurl -I(solicitud HEAD) podría no activar la lógica de caché real para el cuerpo del recurso en el POP en algunos escenarios, lo que lleva a una conclusión falsa de fallo de caché. Se recomienda utilizar una solicitud GET para la verificación.Revise X-Cache para determinar el estado de acierto:
HITindica un acierto de caché.MISSo la ausencia de este campo indica un fallo de caché, lo que significa que la solicitud desencadenó una petición al origen.Revise Age y X-Swift-CacheTime para determinar la duración restante de la caché:
Ageindica el número de segundos que el recurso ha estado almacenado en caché en el POP, y debe interpretarse junto con X-Cache. Si X-Cache es MISS y Age es 0, la solicitud desencadenó una petición al origen. Si X-Cache es HIT pero Age es 0, el recurso se almacenó en caché hace menos de 1 segundo.X-Swift-CacheTimeindica la duración total permitida de la caché. La duración restante equivale a X-Swift-CacheTime menos Age.Confirme que la solicitud pasa por CDN: Si el encabezado de respuesta
Servermuestra un identificador de origen, comoAliyunOSSonginx, y faltan los encabezados de respuesta de CDN como X-Cache y X-Swift-CacheTime, la solicitud omitió el POP de CDN y fue directamente al servidor de origen. Ejecutedig accelerated-domainonslookup accelerated-domainpara confirmar el resultado final de la resolución. Conserve únicamente el registro CNAME asignado por CDN y elimine los registros A/AAAA que apuntan a la IP del servidor de origen y los registros CNAME que apuntan al nombre de dominio del servidor de origen.
Caché que no surte efecto y fallos de caché
¿La solicitud sigue desencadenando peticiones al origen o fallando la caché después de configurar una regla de caché?
El tiempo de expiración de la caché está establecido en 0, ¿pero el contenido al que accedo sigue sin ser el más reciente?
Configuré una clave de caché personalizada para diferenciar solicitudes de celular y PC, ¿pero no surte efecto?
Proporción baja de aciertos de caché y proporción alta de solicitudes al origen
¿La proporción de aciertos de caché es baja, la proporción de solicitudes al origen es alta o el ancho de banda del origen está saturado?
El X-Cache de la solicitud de la página principal siempre es MISS, lo que resulta en una proporción baja de aciertos de caché. ¿Cómo resuelvo esto?
¿Cuáles son las posibles causas de una disminución repentina en la proporción de aciertos de caché?
Excepciones en encabezados de respuesta y CORS
Configuré Access-Control-Allow-Origin, ¿pero las solicitudes siguen reportando errores CORS?
¿Un encabezado de respuesta personalizado no surte efecto?
Una página muestra caracteres ilegibles después de la aceleración de CDN. ¿Cómo manejo esto?
Configuré un encabezado de respuesta para controlar la descarga o vista previa de video, pero no surte efecto. ¿Qué hago?
Un archivo JavaScript se maneja incorrectamente como text/html. ¿Cómo resuelvo esto?
Excepciones en videos y archivos grandes
¿Ocurre ERR_CONTENT_LENGTH_MISMATCH durante la reproducción de video?
¿Es normal ver muchos códigos de estado 206 o múltiples solicitudes al origen en los registros?
Excepciones de contenido y acceso
Los recursos estáticos coinciden con la caché, ¿pero la página principal sigue cargando lentamente?
¿El acceso a través de CDN devuelve un resultado diferente al acceso directo al servidor de origen?
El archivo descargado a través de CDN no coincide con el del servidor de origen (actualización con mismo nombre). ¿Cómo resuelvo esto?
¿Por qué aparece una página 404 personalizada cuando accedo a un recurso?
Ocurre una redirección de dominio o un bucle de redireccionamiento después de configurar una página 403 personalizada. ¿Cómo manejo esto?
Qué hacer si el problema persiste sin resolverse
Antes de enviar un ticket, se recomienda localizar el problema usted mismo de las siguientes maneras:
Revise los registros en tiempo real: En la consola, revise el estado de la caché, el estado de las solicitudes al origen y la distribución de códigos de respuesta de la solicitud específica para determinar en qué URLs o períodos de tiempo se concentra el problema.
Utilice la herramienta de diagnóstico de la consola: Introduzca la URL problemática para su detección y obtenga rápidamente la resolución, la solicitud al origen y la información de encabezados de respuesta.
Realice pruebas comparativas: Acceda al mismo recurso a través de CDN y directamente desde el servidor de origen respectivamente, compare las diferencias en los encabezados de respuesta y el contenido, y determine si el problema está en el lado de CDN o en el lado del servidor de origen.
Si el problema persiste sin resolverse después de la solución de problemas por su cuenta, se recomienda recopilar la siguiente información antes de enviar un ticket para acelerar la identificación:
El nombre de dominio acelerado y la URL de solicitud específica.
La salida completa de
curl -vque reproduce el problema (incluyendo los encabezados de solicitud y respuesta).La hora aproximada, región e ISP cuando ocurrió el problema.
El tipo de servidor de origen (OSS, ECS, SLB, servidor de origen de terceros, etc.) y si el servidor de origen admite solicitudes por rangos.
Los pasos de solución de problemas que ha intentado y el resultado de cada paso.
Si el problema involucra la proporción de aciertos de caché, proporcione una captura de pantalla de la proporción de aciertos en la consola y el rango de tiempo correspondiente.