Solución de problemas

Obtén información sobre los pasos para la solución de problemas que podrían resultar útiles si te encuentras con los siguientes problemas en Cloud CDN.

Problemas comunes y soluciones

Las respuestas no se almacenan en caché

Si las respuestas no se almacenan en caché, primero verifica que Cloud CDN esté habilitado para el servicio de backend o el depósito de backend. Cuando habilitas Cloud CDN, es posible que tarde unos minutos antes de que las respuestas comiencen a almacenarse en caché.

Cloud CDN solo almacena en caché las respuestas que están marcadas como públicas y que especifican un plazo de vencimiento o antigüedad máxima. Esta información se transmite en los encabezados de respuesta HTTP. Si las respuestas para una URL no se almacenan en caché, verifica qué encabezados se muestran para esa URL.

Hay varias maneras de verificar los encabezados de respuesta:

En el siguiente ejemplo se demuestra el uso de curl para verificar los encabezados de respuesta HTTP para http://example.com/style.css:

$ curl -s -D - -o /dev/null http://example.com/style.css
HTTP/1.1 200 OK
Date: Tue, 16 Feb 2016 12:00:00 GMT
Content-Type: text/css
Content-Length: 1977
Via: 1.1 google

$

La comparación de estos encabezados con los requisitos en Detalles de almacenamiento en caché revela que la respuesta no tiene el encabezado Cache-Control obligatorio.

El método para configurar encabezados depende del tipo de servidor de origen. Si ejecutas un servidor web en Google Compute Engine, consulta la documentación del software del servidor web para obtener detalles sobre la configuración de los encabezados de respuesta. En el caso de Google Cloud Storage, marcar el objeto como compartido públicamente hará que se envíen los encabezados adecuados.

Después de configurar el servidor de origen para agregar el encabezado obligatorio, curl puede utilizarse nuevamente a fin de verificar el resultado:

$ curl -s -D - -o /dev/null http://example.com/style.css
HTTP/1.1 200 OK
Date: Tue, 16 Feb 2016 12:00:30 GMT
Content-Type: text/css
Content-Length: 1977
Cache-Control: max-age=86400,public
Via: 1.1 google

$ curl -s -D - -o /dev/null http://example.com/style.css
HTTP/1.1 200 OK
Date: Tue, 16 Feb 2016 12:00:31 GMT
Content-Type: text/css
Content-Length: 1977
Cache-Control: max-age=86400,public
Via: 1.1 google

$ curl -s -D - -o /dev/null http://example.com/style.css
HTTP/1.1 200 OK
Date: Tue, 16 Feb 2016 12:00:30 GMT
Content-Type: text/css
Content-Length: 1977
Cache-Control: max-age=86400,public
Via: 1.1 google
Age: 2

$

La última respuesta en este ejemplo incluye un encabezado Age. Cloud CDN agrega un encabezado Age a las respuestas que entrega desde la caché. En este caso, el encabezado indica que la respuesta se entregó correctamente desde la memoria caché con una entrada de caché que se creó hace 2 segundos.

El contenido privado se almacenó en caché o el contenido almacenado en caché es incorrecto

Si sabes por qué el servidor de origen entregó el contenido privado o incorrecto y puedes solucionar el problema, puedes invalidar las memorias caché de Cloud CDN mediante el siguiente proceso:

  1. Asegúrate de que el servidor de origen ya no muestre el contenido privado o incorrecto.
  2. Solicita una invalidación de caché para indicar a Cloud CDN que deje de entregar contenido almacenado en caché.

Para obtener más información, lee la página de invalidación de caché.

Cloud CDN almacenará en caché solo las respuestas que están marcadas como almacenables en caché de forma pública y entregará respuestas desde la caché solo hasta el plazo de vencimiento especificado en la respuesta. Si no sabes por qué el contenido se almacenó en caché o no puedes solucionar el problema de manera apropiada, es posible que desees inhabilitar Cloud CDN hasta que puedas entender y solucionar el problema, luego vuelve a habilitar Cloud CDN. Para obtener información sobre qué contenido se almacena en caché y por cuánto tiempo, consulta Detalles de almacenamiento en caché.

La tasa de aciertos de caché es baja o hay varios llenados de caché para el mismo contenido

Si tienes tasas de aciertos de caché más bajas que las esperadas para los servicios de backend o los depósitos de backend, asegúrate de que las respuestas para las URL de interés se almacenen en caché.

Cloud CDN incorpora el URI de solicitud completo en las claves de caché, por lo que http://example.com/cat.jpg?1 y http://example.com/cat.jpg?2 tendrán entradas de caché independientes. Puedes mejorar las tasas de aciertos de caché; para ello, utiliza siempre una URL única para un recurso determinado. Si necesitas pasar parámetros a la versión de JavaScript que se ejecuta en una página que puede almacenarse en caché, considera utilizar identificadores de fragmentos en lugar de cadenas de consulta. Además, puedes mejorar las tasas de aciertos de caché mediante el uso del encabezado de respuesta Vary solo cuando sea necesario. La sección Detalles de almacenamiento en caché tiene más información sobre las clave de caché.

En general, puedes reducir el número de llenados de caché; para ello, aumenta los plazos de vencimiento de las respuestas que pueden almacenarse en caché. Si todo lo demás permanece igual, verás menos llenados de caché para una respuesta con Cache-Control: public, max-age=86400 que una con Cache-Control: public, max-age=1. Consulta Detalles de almacenamiento en caché para obtener información sobre los plazos de vencimiento y la documentación para el software del servidor web a fin de obtener detalles acerca de la configuración de los encabezados de respuesta adecuados. Sin embargo, ten en cuenta que Cloud CDN opera numerosas memorias caché en todo el mundo, y que las entradas de caché antiguas se expulsan de manera habitual a fin de dejar lugar para el contenido nuevo. Como resultado, se esperan varios llenados de caché por recurso como parte del funcionamiento normal.

La compresión no funciona

Cloud CDN no comprime ni descomprime las respuestas en sí, pero puede entregar respuestas que genera el servidor de origen y que se comprimen con el uso de codificaciones como gzip y DEFLATE.

Si las respuestas que entrega Cloud CDN no están comprimidas, pero deberían estarlo, verifica que el software del servidor web que se ejecuta en las instancias esté configurado para comprimir respuestas. Según la configuración predeterminada, algunos softwares del servidor web inhabilitarán automáticamente la compresión para las solicitudes que incluyan un encabezado Via. La presencia de un encabezado Via indica que un proxy reenvió la solicitud. Los proxies HTTP como el balanceo de cargas HTTP(S), agregan un encabezado Via a cada solicitud como lo exige la especificación HTTP. Para habilitar la compresión, es posible que tengas que anular la configuración predeterminada del servidor web para indicarle que comprima las respuestas, incluso si la solicitud tenía un encabezado Via.

Si utilizas el software del servidor web nginx, modifica el archivo de configuración nginx.conf para habilitar la compresión. La ubicación de este archivo depende del lugar en el que está instalado nginx. En muchas distribuciones de Linux, el archivo se almacena en /etc/nginx/nginx.conf. Para permitir que la compresión nginx funcione con el balanceo de cargas HTTP(S), agrega las siguientes dos líneas a la sección http de nginx.conf:

gzip_proxied any;
gzip_vary on;

La primera línea habilita la compresión, incluso para las solicitudes que reenvía un proxy como el balanceo de cargas HTTP(S). La segunda línea agrega un encabezado Vary: Accept-Encoding a las respuestas. Vary: Accept-Encoding notifica a los proxies de almacenamiento en caché, como Cloud CDN, que deben mantener entradas de caché independientes para las variantes comprimidas y no comprimidas de los recursos que se pueden comprimir.

Después de modificar nginx.conf, es necesario que reinicies nginx antes de que utilice la configuración nueva. En muchas distribuciones Linux, nginx puede reiniciarse con solo ejecutar sudo service nginx restart o /etc/init.d/nginx restart.

Respuestas que terminan con errores byte_range_caching_aborted

Cuando Cloud CDN arma una respuesta a partir de varias solicitudes de rango de bytes, verifica si esos rangos son de la misma versión del recurso; para ello, compara los encabezados de respuesta ETag y Last-Modified. Si Cloud CDN encuentra que el valor de cualquiera de los encabezado es incoherente con los rangos que ya entregó al cliente, anulará la respuesta.

Si observas respuestas canceladas inesperadas, entradas de registro de Stackdriver Logging con statusDetails byte_range_caching_aborted, o instancias que muestran respuestas 412 Precondition Failed, asegúrate de que el software del servidor web que se ejecuta en todas las instancias de VM muestre los mismos valores ETag y Last-Modified para un recurso determinado.

Cuando se entregan archivos desde un disco, es común que el software del servidor web derive los valores ETag y Last-Modified de la hora de modificación del archivo. En este caso, puedes asegurarte de que las instancias de VM informen valores coherentes mediante el uso de la misma imagen para todas las instancias. Consulta la documentación sobre el software del servidor web para obtener detalles sobre cómo determina los valores ETag y Last-Modified.

Mensajes de error

Errores de invalidación de caché
Código de error Notas
Invalid value for field 'resource.path' El valor de la ruta de acceso tenía un formato no válido. Las rutas de acceso deben comenzar con /, no deben contener un ? o #, y deben tener un solo *, que debe ser el carácter final después de /. Las rutas de acceso no deben tener mas de 1,024 caracteres. Si recibes este error, verifica el valor de la ruta de acceso y corrige cualquier error de formato.
Este error solo aborda el formato de la ruta de acceso. Una ruta de acceso que tiene un formato válido, pero que no existe, todavía se trata como válida.
Rate Limit Exceeded Cloud CDN restringe la velocidad a la que pueden realizarse las operaciones de invalidación de caché. Solo se permite una invalidación por minuto. Sin embargo, cada operación puede especificar un patrón de ruta de acceso que coincida con cualquier cantidad de objetos.

Problemas conocidos

Los siguientes problemas y limitaciones conocidos afectan a Cloud CDN:

  • Las invalidaciones de caché se limitan a una invalidación por mapa de URL por minuto.
¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Cloud CDN