Gestione della distribuzione CIS per un'affidabilità ottimale
Per ottenere un'affidabilità ottimale per l'implementazione di IBM Cloud® Internet Services, è possibile impostare una configurazione DNS utile e bilanciatori di carico globali. Per maggiore affidabilità, puoi utilizzare le nostre regole della pagina per assicurarti che il tuo contenuto web sia distribuito ai tuoi clienti, anche se il tuo server di origine o la cache ha un problema. Questo documento fornisce i dettagli su alcune procedure consigliate per rendere la tua distribuzione CIS affidabile in modo ottimale.
Generalmente, le nostre procedure consigliate sono queste:
- Impostate il vostro DNS per sfruttare i server proxy di CIS e altre funzioni.
- Utilizzare uno o più bilanciatori di carico globali per distribuire uniformemente il traffico del sito.
- Impostare regole di pagina appropriate per gestire la cache e altre opzioni.
Ognuno di questi elementi fornisce alcune funzionalità che puoi utilizzare per creare una distribuzione CIS più affidabile.
Tieni presente che l'interfaccia CIS è organizzata in sezioni per sicurezza, affidabilità e prestazioni.
Configurazione del DNS
Per iniziare a impostare la configurazione DNS, selezionare DNS dal menu di navigazione.
Per informazioni sull'impostazione e la gestione del DNS per l'affidabilità, vedere Impostazione del Domain Name System per CIS.
Configurazione dei GLB (Global Load Balancer)
Per iniziare la configurazione dei tuoi GLB (Global Load Balancer), seleziona Global Load Balancers dal menu di navigazione.
Per informazioni sull'impostazione e la gestione dei bilanciatori di carico globali, vedere Concetti di bilanciamento del carico globale.
Utilizzo delle regole della pagina per aumentare l'affidabilità
L'elenco seguente mostra alcune impostazioni di regole di pagina consigliate per garantire la massima affidabilità del sito.
- Origin Cache Control
- Forwarding URL
Serve Stale Content
È possibile utilizzare l'impostazione Servire contenuti obsoleti per mantenere online una versione limitata del sito in caso di interruzione del server.
Con Serve Stale Content, quando il vostro server va in tilt, CIS serve le pagine dalla cache, in modo che i vostri visitatori vedano ancora alcune delle pagine che stanno cercando di visitare. I tuoi visitatori vedranno un messaggio all'inizio della pagina che dice loro che sono nella modalità di esplorazione offline. Serve Stale Content restituisce uno stato HTTP 503, tuttavia, 503 viene anche utilizzato da molte altre applicazioni web. Quando il server torna online, CIS riporta gli utenti alla navigazione normale senza problemi.
Se CIS non dispone della pagina richiesta nella sua cache, il tuo visitatore visualizza una pagina di errore che gli fa sapere che la pagina del sito web che sta richiedendo è offline.
Impostazione di Servire contenuti obsoleti
Per abilitare Serve Stale Content, procedere come segue.
- Utilizzate il menu di navigazione per andare a Performance > Caching.
- Attivare l'opzione Serve Stale Content.
Limitazioni dei contenuti obsoleti
-
Serve Stale Content si integra con Internet Archive. CIS scansiona gli URL più popolari che hanno uno stato
200
HTTP delle ultime 5 ore. Questo significa che soltanto alcune pagine nel tuo sito saranno visualizzabili quando si arresta il tuo server di origine. -
I siti aggiunti di recente non hanno una grande cache del loro sito disponibile. Ciò significa che Serve Stale Content potrebbe non funzionare se il sito è stato aggiunto solo pochi giorni fa.
-
CIS non mostra contenuto privato o gestisce l'inoltro del modulo (POST) se il tuo server è inattivo. Ai visitatori viene mostrata una pagina
error on checkout
oitems require a login to view
. -
Per attivare Serve Stale Content, il tuo server web deve restituire un codice di errore HTTP standard 502 o 504 di timeout. Serve Stale Content funziona anche quando CIS incontra problemi nel contattare l'origine (errori 521 e 523), timeout (522 e 524), errori SSL (525 e 526) o un errore sconosciuto (520). Serve Stale Content non viene attivato per altri codici di risposta HTTP, ad esempio 404, 500, 503, errori di connessione al database, errore server interno o risposte vuote dal server.
-
Serve Stale Content non funziona se viene abilitata una regola della pagina "Cache Everything" con "Edge Cache Expire TTL" inferiore alla frequenza di memorizzazione nella cache, perché "Edge Cache Expire TTL" fa in modo che il contenuto della cache di Serve Stale Content venga eliminato dalla cache nell'intervallo corrispondente.
Origin Cache Control
Puoi utilizzare l'impostazione della regola della pagina Origin Cache Control per determinare quale contenuto viene memorizzato nella cache dalla tua origine e quanto spesso viene aggiornato, che influenza l'affidabilità e le prestazioni. Per impostazione predefinita, se non viene modificata alcuna impostazione e non viene inviata alcuna intestazione che impedisce la memorizzazione nella cache dal tuo server di origine, CIS memorizza nella cache tutto il contenuto statico con determinate estensioni. Questi tipi di contenuto includono immagini, CSS e JavaScript. Questa memorizzazione nella cache è principalmente per motivi legati alle prestazioni.
Per impostare il controllo della cache di origine, utilizzate le regole di pagina per attivare intestazioni specifiche che diano il comportamento desiderato per ogni risorsa del vostro contenuto. Per comprendere come utilizzare Origin Cache Control, è necessaria qualche spiegazione generale sulle regole della pagina e sul comportamento generale della memorizzazione nella cache per CIS per fornire un contesto, tali argomenti verranno trattati nelle prossime sezioni. Esistono tre metodi che puoi utilizzare per controllare la memorizzazione nel cache in generale e Origin Cache Control è il secondo.
L'impostazione di Origin Cache Control richiama le regole di memorizzazione nella cache che cercano di rispettare strettamente i RFC e le procedure consigliate internet, principalmente con il rispetto della riconvalida. Ad esempio,
il comportamento predefinito di CIS con max-age=0
è di non memorizzare nella cache, al contrario l'impostazione Origin Cache Control memorizza ma viene sempre riconvalidata.
Impostazione del controllo della cache di origine
Seguire questi passaggi per abilitare il controllo della cache di origine.
- Utilizzare il menu di navigazione per selezionare Regole di pagina in Prestazioni.
- Crea una regola della pagina con il modello dell'URL che fa riferimento al tuo dominio.
- Aggiungi l'impostazione Origin Cache Control con l'interruttore attivo.
- Seleziona Provision Resource.
Precedenza della regola della pagina
Queste regole specifiche della pagina hanno la precedenza per la cache in generale.
-
Se una regola di pagina ha Livello di cache impostato su
Bypass
, le risorse che corrispondono a quella regola di pagina non vengono memorizzate nella cache. CIS agisce comunque come proxy e le altre caratteristiche di performance rimangono attive. Tuttavia, il tuo contenuto viene richiamato direttamente dal tuo server di origine invece di essere presentato dalla nostra cache. -
Se una regola della pagina ha Cache Level impostato su
Cache everything
, le risorse che corrispondono alla regola della pagina vengono memorizzate nella cache. L'uso di questa impostazione della regola della pagina è l'unico modo per dire a CIS di memorizzare nella cache le risorse oltre a quelle che CIS considera statiche, compreso l'HTML.
Se non è impostata alcuna regola di pagina, CIS utilizza la modalità di caching Standard
, che si basa sull'estensione della risorsa. CIS mette in cache solo le risorse statiche.
Intestazioni del controllo della cache dell'origine
Il secondo modo per modificare ciò che CIS memorizza nella cache è attraverso le intestazioni inviate dall'origine. CIS rispetta queste impostazioni, ma è possibile sovrascriverle specificando un'impostazione della regola di pagina Edge Cache TTL. Ecco le intestazioni che CIS considera per decidere quali risorse mettere in cache dall'origine:
-
Se l'intestazione Cache-Control è impostata su
private
,no-store
,no-cache
, omax-age=0
, o se c'è un cookie nella risposta, CIS non mette in cache la risorsa. Tieni presente che il materiale sensibile non dovrebbe essere memorizzato nella cache, per cui potresti considerare di utilizzare una di queste indicazioni in tale caso. -
Se l'intestazione Cache-Control è impostata su
public
emax-age
è maggiore di 0, o se le intestazioniExpires
sono impostate in qualsiasi momento nel futuro, la risorsa viene messa in cache.
Secondo le regole RFC, Cache-Control: max-age
prevale sulle intestazioni Expires
. Se vengono visti entrambi e non sono d'accordo, max-age
vince.
Utilizzo dell'intestazione s-maxage
Il terzo modo di controllare il comportamento della memorizzazione nella cache e il comportamento della memorizzazione nella cache del browser è di utilizzare l'intestazione s-maxage
Cache-Control.
Normalmente CIS rispetta la direttiva max-age
.
Cache-Control: max-age=1000
Ma se si vuole specificare un timeout della cache diverso da quello del browser, CIS può usare s-maxage
. L'esempio seguente indica a CIS di memorizzare l'oggetto nella cache per 200 secondi e al browser di memorizzarlo per 60
secondi.
Cache-Control: s-maxage=200, max-age=60
Fondamentalmente, s-maxage
è destinato a essere seguito SOLO dai reverse proxy (quindi il browser dovrebbe ignorarlo) mentre (CIS) dà la priorità a s-maxage
se è presente. CIS rispetta il valore più alto: l'impostazione
della cache del browser o l'intestazione max-age
.
Riepilogo delle intestazioni del controllo della memorizzazione nella cache e delle regole della pagina per l'affidabilità
Per riassumere, queste sono alcune delle aree principali da considerare per l'affidabilità nei confronti della memorizzazione nella cache:
-
Controlla le intestazioni di memorizzazione nella cache della tua origine per assicurarti che non ci siano intestazioni sovrascrivibili per le risorse memorizzabili (
Cache-Control
eExpires
). -
CIS memorizza nella cache sempre il contenuto statico per impostazione predefinita, con il seguente TTL a seconda del codice di ritorno:
200 301 120m; 302 303 20m; 403 5m; for reliability 404 5m; any 0s;
-
Per avere una maggiore quantità di cache, creare una Regola di pagina con Livello di cache impostato su
Cache everything
su URL (se il server web restituisce un 404 quando si richiede questo URL, il risultato viene memorizzato nella cache solo per 5m ). -
Per impedire la memorizzazione nella cache in un URL, crea una regola della pagina con Cache Level impostato su
Bypass
.
Forwarding URL
Per garantire che i contenuti siano sempre disponibili, creare una regola di pagina con l'impostazione Forwarding URL, nel caso in cui il sito non sia disponibile.
Quando si attiva un inoltro URL, tutte le altre impostazioni vengono disattivate perché si invia tutto il traffico a un altro URL.
Impostazione di un inoltro URL
Per abilitare l'inoltro URL, procedere come segue:
- Utilizzare il menu di navigazione per selezionare Regole di pagina in Prestazioni.
- Crea una regola della pagina con il modello dell'URL che fa riferimento al tuo dominio.
- Aggiungi l'impostazione Forwarding URL.
- Seleziona il tipo di instradamento e immetti l'URL di destinazione.
- Seleziona Provision Resource.
Esempi di inoltro dell URL
Immaginate di voler rendere facile per chiunque arrivi raggiungere un sito URL come ad esempio:
*www.example.com/+
*example.com/+
Questo modello corrisponde a:
http://example.com/+
http://www.example.com/+
https://www.example.com/+
https://blog.example.com/+
https://www.blog.example.com/+
Non corrisponde a:
http://www.example.com/blog/+ [extra directory before the +]
http://www.example.com+ [no trailing slash]
Dopo aver creato il modello che corrisponde a quello desiderato, aggiungere l'impostazione Inoltro URL e selezionare il tipo di inoltro e inserire la destinazione URL. Ad esempio:
https://plus.google.com/yourid
Seleziona Provision Resource. In pochi secondi tutte le richieste che corrispondono al modello vengono instradate al nuovo URL con il reindirizzamento specificato.
Opzioni di instradamento avanzate
Se utilizzi un reindirizzamento di base, come un instradamento del dominio root a www.yourdomain.com
, perdi qualsiasi altra cosa nell'URL. Ad esempio, potresti configurare il modello:
example.com
E instradarlo a:
http://www.example.com
Ma se qualcuno immette:
example.com/some-particular-page.html
Viene reindirizzato a:
www.example.com
invece di:
www.example.com/some-particular-page.html
La soluzione è di utilizzare le variabili. Ogni carattere jolly corrisponde a una variabile a cui può essere fatto riferimento nel seguente indirizzo. Le variabili sono rappresentate da un carattere $
seguito da un numero. Per
fare riferimento al primo carattere jolly devi utilizzare $1
, per il secondo $2
e così via. Per correggere l'instradamento dalla root a www
nell'esempio precedente, utilizziamo lo stesso modello:
example.com/*
Quindi configura il seguente URL a cui instradare il traffico:
http://www.example.com/$1
In questo caso, se qualcuno è andato in:
example.com/some-particular-page.html
Viene reindirizzato a:
http://www.example.com/some-particular-page.html