Un CDN funziona ancora anche quando il mio server è inattivo?


10

Sono il proprietario di un sito Web che intende utilizzare il cloudfront S3 di Amazon. Ho letto tutto ciò che può fare un CDN, ma ho ancora una domanda senza risposta.

Un CDN funziona ancora anche quando il mio server principale è inattivo. Questa è la ragione principale per cui mi interessa. Perché, il mio server di solito subisce interruzioni frequenti a causa di mancanza di corrente qui in Mali.


3
Potresti prendere in considerazione CloudFlare, che è a) gratuito eb) può mantenere le tue pagine statiche attive durante un'interruzione.
Ceejayoz,

Risposte:


12

Dipende da chi ospita il tuo CDN. Se si ospita il sito Web su un server e la rete CDN con una terza parte, è probabile che la rete CDN rimanga attiva quando il sito Web è inattivo. Tuttavia, ciò potrebbe non essere il caso, poiché alcuni CDN distribuiscono solo contenuti che possono verificare sul tuo sito Web.

Una nota a margine, i CDN non servono per ospitare l'intero sito Web. Quindi, se stai pensando che puoi usarne uno per sostituire il tuo hosting web o usarlo come una sorta di piano di failover, stai abbaiando l'albero sbagliato.

TL; DR - Dovrai chiedere al tuo provider CDN.


10

I CDN sono progettati per la scalabilità e le prestazioni, ma non per l'alta disponibilità. In qualsiasi momento, potrebbero richiedere l'accesso ai file originali.

Molte persone li usano per archiviare file statici come immagini, file css e javascript. Alcuni possono essere configurati per memorizzare nella cache HTML, ma questo è solo se si dispone di un sito Web completamente statico. Se così fosse, potresti ospitare tutto su S3 e non avresti bisogno di un server.


5

In generale, sì, fino al TTL.

Quando si utilizzano CDN, di solito si configurano i TTL (tempo di vita) per i propri contenuti. Questo è il massimo su quanti anni può avere la cache prima che decida che deve assolutamente aggiornare la cache con il contenuto più recente. Ad esempio, supponiamo di aver configurato tutti gli URL * .jpg per avere un TTL di 5 minuti.

Quindi, se il tuo server non funziona, hai 5 minuti in più per ripristinarlo prima che gli utenti lo notino. Bene, almeno per .jpg. Beh, almeno per i file .jpg che sono stati precedentemente memorizzati nella cache.

Inoltre, alcune CDN utilizzano funzionalità come Akamai NetStorage in cui è possibile caricare i contenuti direttamente sulla CDN: alla CDN viene fornito un contenuto e viene detto di servirlo direttamente a priori. Dato che non esiste mai una cache "pull" di tipo "on demand" in corso qui per cominciare, ciò dovrebbe ovviamente funzionare quando il server non è attivo.

Come hanno notato gli altri manifesti, questo non è ciò per cui i CDN sono progettati e NON garantiscono che questo comportamento funzioni. Di solito funziona (ed è fantastico quando lo guardi accadere!). E ovviamente per dettagli tecnici specifici dovresti contattare il tuo provider.


5

Sì: i server CDN saranno ancora in esecuzione anche quando il sito è inattivo, che è una buona opzione da avere per la gestione di gravi interruzioni. Hai un discreto controllo su ciò che accade in modo da poter personalizzare l'esperienza in base alle tue risorse e priorità. Le opzioni rientrano genericamente in queste categorie:

  1. Gli oggetti che sono stati configurati per la memorizzazione nella cache (più comunemente impostando l' Cache-Controlintestazione) dovrebbero essere disponibili fino alla loro scadenza. Alcuni CDN offrono ai server periferici CDN la possibilità di recuperare contenuto da altri server CDN, il che può aiutare in caso di interruzioni e migliorare in generale le prestazioni quando i server di origine hanno una latenza relativamente elevata rispetto ai server CDN.

  2. Alcuni CDN offrono la possibilità di pubblicare contenuti scaduti quando il tuo server back-end non è disponibile (ad es. Con Fastly puoi abilitare le modalità grazia o santo di Varnish). Ovviamente questo non aiuterà con contenuti che non sono mai stati memorizzati nella cache, ma in molti casi potrebbe almeno mantenere online la tua home page principale, le informazioni di contatto, ecc. Mentre lavori per riportare i tuoi server online.

  3. La maggior parte dei CDN offre la possibilità di provare più server back-end in modo che un sito di failover separato fornisca l'esperienza che ha senso per il tuo sito: failover su un altro server o sito con funzionalità ridotta, una pagina HTML statica, ecc. Questo può essere utile per catastrofici errori di hosting poiché hai la possibilità di ospitare con una società completamente diversa o, nel caso di qualcosa come Akamai NetStorage, direttamente con il provider CDN in modo da supportare l'intero stack.

Con l'eccezione della terza opzione, non hai alcun controllo su ciò che verrà memorizzato nella cache sui server CDN, quindi la parte più importante del processo è decidere come il tuo sito può degradare se non sono disponibili varie funzionalità: ad esempio, se hai ragionevole contenuto HTML anche quando JavaScript non riesce completamente, un sito per lo più basato sulle informazioni potrebbe essere in grado di funzionare solo con il contenuto di una pagina di base anche quando le funzionalità più avanzate non funzionano in modo silenzioso in background.


Ottimo riassunto! Akamai ha Serve stale if unable to validateun'opzione in modo che quando l'origine è inattiva, servirebbe il contenuto anche se viene raggiunto il TTL.
LeOn - Han Li,

@Leonli il secondo punto potrebbe probabilmente anche utilizzare un collegamento a RFC 5861 poiché credo che anche CloudFlare supporti Cache-Control: stale-if-errorora.
Chris Adams,

2

La maggior parte dei CDN memorizza nella cache i contenuti (dinamici) per un periodo di tempo (TTL) dall'origine, in questo caso il tuo server. In Amazon Cloudfront Management Console è spiegato il controllo della cache di un bucket S3.

  1. Il comportamento predefinito dell'S3 di Amazon è la memorizzazione nella cache di un oggetto 24 ore.

  2. È possibile influenzare il comportamento predefinito fornendo / scrivendo un'intestazione Cache-Control sul server di origine o un'intestazione Expires.

    • Quando si utilizza l'intestazione max-age Cache-Control, il valore minimo è 0. A quel punto, Amazon contenta il server di origine, per verificare se l'oggetto è cambiato, ogni volta.

    • Quando usi l'intestazione Expires per un oggetto, Amazon non contatterà il tuo server di origine fino a quella data.

Spero che questo chiarisca il comportamento di Amazon.


0

Sono stato un tecnico dell'assistenza presso un CDN per oltre un anno e dirò che tutte le risposte qui sono ottime, ma IMO @ Chris-Adams ha la risposta migliore (se potessi votare in alto lo farei).

Una cosa che i nostri clienti fanno è indicare www alla CDN e 301 TLD a www. Se un TTL di oggetti scade, il bordo servirà il contenuto scaduto se è disponibile nella cache.

Detto questo, se l'uptime (e i nuovi contenuti) sono importanti per te, prenderei in considerazione l'idea di spostare la tua origine (dolore nel sedere che conosco) a un host che non subisce frequenti interruzioni di corrente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.