Acaba de terminar de tratar con un fallo en línea para un cliente, la presión arterial casi no se levantó. Usted dice que una buena estación de comercio electrónico, gran día a casa de repente la pantalla en blanco, las quejas de los usuarios locos. Un cheque, buen tipo, la CPU de la estación de origen directamente se disparó a 100%, la piscina de conexión de base de datos todos llenos. ¿Causa raíz? Una página de productos populares fue rastreador de una segunda solicitud miles de veces, cada solicitud penetra en la CDN, directamente de vuelta a la base de datos de consulta de origen. ¿Cómo puede esta parte superior ah? CDN de alta defensa, obviamente, colgando, se evita el ataque, pero la velocidad? ¿El rendimiento? ¡Dinero gastado en vano! El problema radica en la estrategia de almacenamiento en caché no está configurado correctamente - ya sea una talla única para todos caché completa, o dinámica completa, no hizo el proceso de diferenciación.
He visto a demasiados equipos tratar la CDN de alta defensa como un simple “escudo de tráfico”, pensando que mientras el conjunto pueda ser a la vez seguro y rápido. De hecho, es un gran error. El valor central de la CDN de alta defensa, la mitad de la protección de la seguridad, la otra mitad es precisamente en laDiseño adecuado de la cachéCaché es una buena manera de mantenerse al día con las inundaciones de tráfico. Caché configurar bien, no sólo puede llevar el pico de tráfico, e incluso le permiten ser golpeado cuando el usuario es completamente insensible a seguir navegando; configurar mal, se evita el ataque, pero el usuario normal no puede utilizar la tarjeta, la estación de origen también puede ser herido por error.
¿Por qué la caché de su CDN siempre está mal? El 80% no entiende la palabra “separación estática y dinámica”. El contenido estático (imágenes, CSS, JS, fuentes, etc.) y el contenido dinámico (interfaces API, datos de sesión de usuario, precios en tiempo real) son básicamente dos tipos de criaturas, pero se utiliza el mismo conjunto de reglas de almacenamiento en caché para tratar con ellos, ¿no puede suceder? El contenido estático debe ser almacenado en caché hasta la muerte, mientras que el contenido dinámico debe ser cuidadosamente controlado o incluso omitido por completo.
Obsérvese aquí elinmutableque le dice al navegador: este archivo no cambiará en tu vida, así que puedes leerlo de la caché local sin ni siquiera enviar una petición condicional. En la práctica, esto es extremadamente eficaz para reducir las peticiones duplicadas y aumentar la velocidad.
El mayor quebradero de cabeza es el contenido dinámico. Por ejemplo, la página de detalles del producto, la mayor parte del contenido es estático (descripción del producto, imágenes), pero una pequeña parte de la dinámica (cantidad de stock, apodos de usuario). Todo caché, los datos caducarán; no caché, la estación de origen está bajo una gran presión. Aquí tenemos que ofrecer mi favorito “Caché parcial de bordes” (Edge Side Includes) o el más moderno “computación periférica”Programa arriba.
Tomemos como ejemplo CDN07, su función de borde es mega útil. Puede escribir una simple pieza de lógica JS para iniciar sub-solicitudes de contenido dinámico sólo en el nodo de borde, fusionarlos y devolverlos al usuario:
De este modo, el cuerpo principal de la página se almacena en caché durante 10 minutos, mientras que los módulos dinámicos se recuperan en tiempo real bajo demanda. Esto reduce la presión sobre la estación de origen y garantiza la disponibilidad en tiempo real de los datos principales.
Asegúrese de establecer los factores que pueden afectar a los cambios de contenido como parte de la Clave de Caché. Por ejemplo:
pero asegúrese deExcluir factores que no afectan al contenidocomo User-Agent (a no ser que estés generando contenidos diferentes para móvil y PC), o algún parámetro de rastreo (como utm_source). De lo contrario, estarás almacenando en caché innumerables copias del mismo recurso, y la tasa de aciertos de la caché se desplomará.
Existe otro escenario especial para las RCD de alta defensa:Estrategia de almacenamiento en caché en caso de ataques CC. Cuando la CDN reconoce que una URL está siendo depurada salvajemente, puede establecer una regla especial: almacenar en caché la respuesta a esa URL durante un breve periodo de tiempo (digamos 10 segundos). No menosprecie estos 10 segundos, significa que para todas las peticiones a esta URL en el plazo de 10 segundos, el nodo CDN devolverá el contenido almacenado en caché directamente, y no volverá a la fuente en absoluto. Este “escudo” de 10 segundos es suficiente para que el módulo de seguridad de la CDN determine y bloquee las IP maliciosas. Utilicé este truco en 08Host para resistir con éxito un ataque CC contra la interfaz de búsqueda, el sitio de origen ni siquiera recibió una petición.
Por último, no olvides calentar y limpiar la caché. Incluso la mejor estrategia debe contar con medidas de apoyo. Para las páginas de actividad importante, calentar el nodo CDN con antelación; después de actualizar el contenido, la caché debe ser refrescado en el momento oportuno. 08Host velocidad de la interfaz de actualización de la API es la más rápida que he usado, y después de llamar al nodo 95% puede invalidar la caché dentro de 3 segundos, a diferencia de algunos proveedores que tienen que esperar media hora.
Dicho esto, lo esencial esPruebe, pruebe y vuelva a probar.. Después de hacer coincidir las reglas, asegúrese de comprobar el encabezado Cache-Control con curl o su navegador para asegurarse de que la caché golpeó como se esperaba. Observe el informe de tasa de aciertos de caché en la consola CDN durante un tiempo, si es inferior a 90%, debe haber espacio para la optimización.
La estrategia de caché no es permanente, tiene que seguir los cambios del negocio. Pero mientras usted domine el “contenido estático caché de larga duración, el contenido dinámico de control fino, la clave de caché ajustes razonables” este principio básico, básicamente no va a ir mal. No se olvide, CDN de alta defensa no es sólo un cortafuegos, debe ser la capa más importante de su acelerador de arquitectura de rendimiento. Establecer una buena, la experiencia del usuario se disparó; establecer un mal, el dinero gastado y regañado. En estos días, incluso el CDN tiene que “anti-teammates” - para evitar que aquellos que no entienden la configuración caótica de su propia gente ah.

