¿Sigue funcionando un CDN incluso cuando mi servidor está caído?


10

Soy propietario de un sitio web que planea usar Amazon Cloudfront S3. He estado leyendo todas las cosas sobre lo que puede hacer un CDN pero todavía tengo una pregunta sin respuesta.

¿Sigue funcionando un CDN incluso cuando mi servidor principal está inactivo? Esa es la razón principal por la que estoy interesado. Porque, mi servidor generalmente experimenta cortes frecuentes debido a fallas de energía aquí en Mali.


3
Es posible que desee considerar CloudFlare, que es a) gratuito yb) puede mantener sus páginas estáticas durante una interrupción.
ceejayoz

Respuestas:


12

Dependerá de quién aloja su CDN. Si aloja su sitio web en un servidor y el CDN con un tercero, es probable que su CDN permanezca activo cuando su sitio web no funcione. Sin embargo, este puede no ser el caso, ya que algunas CDN solo distribuyen contenido que pueden verificar en su sitio web.

Una nota al margen, los CDN no son para alojar todo su sitio web. Entonces, si está pensando que puede usar uno para reemplazar su alojamiento web o usarlo como algún tipo de plan de conmutación por error, está ladrando el árbol equivocado.

TL; DR: deberá consultar a su proveedor de CDN.


10

Los CDN están diseñados para la escalabilidad y el rendimiento, pero no para la alta disponibilidad. En cualquier momento, pueden requerir acceso a los archivos originales.

La mayoría de las personas los usan para almacenar archivos estáticos como imágenes, CSS y JavaScript. Algunos se pueden configurar para almacenar en caché HTML, pero solo si tiene un sitio web completamente estático. Si ese fuera el caso, podría alojar todo en S3 y no necesitaría un servidor en absoluto.


5

En general, sí, hasta el TTL.

Cuando usa CDN, generalmente configura TTL (tiempo de vida) para su contenido. Este es un máximo de la antigüedad que puede tener el caché antes de que decida que tiene que actualizar el caché con el contenido más nuevo. Por ejemplo, suponga que configura todas las URL * .jpg para tener un TTL de 5 minutos.

Luego, si su servidor se cae, tiene 5 minutos adicionales para volver a encenderlo antes de que los usuarios lo noten. Bueno, al menos para .jpgs. Bueno, al menos para .jpgs que se almacenaron en caché de antemano.

Además, algunas CDN utilizan funciones como Akamai NetStorage, donde puede cargar contenido directamente a la CDN: a la CDN se le proporciona algo de contenido y se le pide que lo sirva directamente a priori. Dado que nunca hay un almacenamiento en caché de estilo "bajo demanda" para comenzar aquí, eso debería funcionar cuando su servidor está inactivo.

Sin embargo, como señalaron los otros carteles, esto no es para lo que están diseñados los CDN y NO proporcionan garantías de que este comportamiento funcione. Simplemente sucede que generalmente funciona (¡y es increíble cuando ves que sucede!). Y, por supuesto, para obtener detalles técnicos específicos, deberá comunicarse con su proveedor.


5

Sí: los servidores CDN seguirán funcionando incluso cuando su sitio esté inactivo, lo cual es una buena opción para manejar interrupciones importantes. Usted tiene bastante control sobre lo que sucede para poder adaptar la experiencia en función de sus recursos y prioridades. Las opciones generalmente se dividen en estas categorías:

  1. Los objetos que se han configurado para el almacenamiento en caché (más comúnmente al configurar el Cache-Controlencabezado) deben estar disponibles hasta que caduquen. Algunas CDN ofrecen la capacidad para que los servidores perimetrales de CDN recuperen contenido de otros servidores de CDN, lo que puede ayudar durante las interrupciones y, en general, mejorar el rendimiento cuando los servidores de origen tienen una latencia relativamente alta en comparación con los servidores de CDN.

  2. Algunos CDN ofrecen la capacidad de servir contenido que ha caducado cuando su servidor back-end no está disponible (por ejemplo, con Fastly puede habilitar los modos de gracia o santo de Varnish). Obviamente, esto no ayudará con el contenido que nunca se almacenó en caché, pero en muchos casos al menos podría mantener su página de inicio principal, información de contacto, etc. en línea mientras trabaja para que sus servidores vuelvan a estar en línea.

  3. La mayoría de las CDN ofrecen la capacidad de probar varios servidores de back-end para que pueda tener un sitio de conmutación por error separado que brinde la experiencia que tenga sentido para su sitio: conmutación por error a otro servidor o sitio de funcionalidad reducida, una página HTML estática, etc. Esto puede ser útil para catástrofes fallas de hosting ya que tiene la opción de hospedarse con una compañía completamente diferente o, en el caso de algo como Akamai NetStorage, directamente con el proveedor de CDN para que admitan la pila completa.

Con la excepción de la tercera opción, no tiene control sobre lo que se almacenará en caché en los servidores CDN, por lo que la parte más importante del proceso es decidir cómo puede degradarse su sitio si no hay varias funciones disponibles: por ejemplo, si tiene contenido HTML razonable incluso cuando JavaScript falla por completo, un sitio basado principalmente en información podría ejecutarse solo con contenido de página básico, incluso cuando las características más avanzadas fallan silenciosamente en segundo plano.


Gran resumen! Akamai tiene una Serve stale if unable to validateopción para que cuando el origen esté inactivo, sirva contenido incluso cuando se alcance TTL.
LeOn - Han Li

@Leonli, el segundo punto probablemente también podría usar un enlace a RFC 5861 ya que creo que CloudFlare también es compatible Cache-Control: stale-if-errorahora.
Chris Adams

2

La mayoría de las CDN son contenido en caché (dinámico) durante un período de tiempo (TTL) desde el origen, en este caso su servidor. En Cloudfront Management Console de Amazon se explica el control de caché de un bucket S3.

  1. El comportamiento predeterminado del S3 de Amazon es almacenar en caché un objeto las 24 horas.

  2. Puede influir en el comportamiento predeterminado, proporcionando / escribiendo un encabezado Cache-Control en su servidor de origen o un encabezado Expires.

    • Cuando usa el encabezado Cache-Control max-age, el valor mínimo es 0. En ese momento, Amazon contendrá su servidor de origen, para verificar si el objeto ha cambiado, cada vez.

    • Cuando utiliza el encabezado Expires para un objeto, Amazon no se pondrá en contacto con su servidor de origen hasta esa fecha.

Espero que esto aclare el comportamiento de Amazon.


0

Fui ingeniero de soporte en un CDN durante más de un año y diré que todas las respuestas aquí son geniales, pero IMO @ Chris-Adams tiene la mejor respuesta (si pudiera votar, lo haría).

Una cosa que hacen nuestros clientes es señalar www al CDN y 301 el TLD a www. Si un objeto TTL caduca, entonces el borde servirá el contenido caducado si está disponible en caché.

Dicho esto, si el tiempo de actividad (y el contenido nuevo) es importante para usted, entonces consideraría trasladar su origen (dolor en el trasero, lo sé) a un host que no experimente cortes de energía frecuentes.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.