Creazione di una distribuzione CloudFront
Creare una distribuzione Web CloudFront seguendo la distribuzione, l'origine e il comportamento predefiniti creati automaticamente per i contenuti dinamici. Creare quattro comportamenti aggiuntivi per personalizzare ulteriormente il modo in cui vengono trattate le richieste statiche e dinamiche. Nella tabella seguente vengono riepilogate le proprietà di configurazione per i cinque comportamenti. È anche possibile saltare questa configurazione manuale e utilizzare il plug-in AWS per WordPress trattato nell'Appendice B: Installazione e configurazione di plug-in: è il modo più semplice per configurare CloudFront per accelerare il sito WordPress.
Tabella 1: Riepilogo delle proprietà di configurazione per i comportamenti di CloudFront
Proprietà | Statico | Dinamico (amministratore) | Dinamico (frontale) |
---|---|---|---|
Percorsi (comportamenti) |
|
|
Predefinito (* ) |
Protocolli | HTTP e HTTPS | Reindirizzamento a HTTPS | HTTP e HTTPS |
Metodi HTTP | GET, HEAD | ALL | ALL |
Intestazioni HTTP | NONE | ALL |
Host CloudFront-Forwarded-Proto CloudFront-Is-Mobile-Viewer CloudFront-Is-Tablet-Viewer CloudFront-Is-Desktop-Viewer |
Cookie | NONE | ALL |
comment_* wordpress_* wp-settings-* |
Stringhe di query | YES (invalidamento) | SÌ | SÌ |
Per il comportamento predefinito, AWS consiglia la seguente configurazione:
-
Consentire la policy relativa al protocollo di origine per Match Viewer (Corrispondenza visualizzatore), in modo che se i visualizzatori si connettono a CloudFront tramite HTTPS, CloudFront si connette anche all'origine dell'utente tramite HTTPS, garantendo una crittografia end-to-end. Nota: è richiesta l'installazione di un certificato SSL attendibile sul sistema di bilanciamento del carico. Maggiori dettagli sono disponibili nel documento Richiesta di una connessione HTTPS per la comunicazione tra CloudFront e il server di origine personalizzato.
-
Consentire tutti i metodi HTTP, dal momento che le parti dinamiche del sito Web hanno bisogno sia di richieste GET che POST (ad esempio, per supportare POST per i moduli per l’invio di commenti).
-
Inoltrare solo i cookie che modificano l'output di WordPress, ad esempio
>wordpress_*
,wp-settings-*
ecomment_*
. È necessario estendere tale elenco se sono stati installati plug-in che dipendono da altri cookie non presenti in elenco. -
Inoltrare solo le intestazioni HTTP che influiscono sull'output di WordPress, ad esempio
Host
,CloudFront-Forwarded-Proto
,CloudFront-is-Desktop-Viewer
,CloudFront-is-Mobile-Viewer
eCloudFront-is-Tablet-Viewer
:-
Host
consente a più siti Web WordPress di essere ospitati sulla stessa origine. -
CloudFront-Forwarded-Proto
consente di memorizzare nella cache diverse versioni delle pagine a seconda del fatto che per l’accesso si utilizzi HTTP o HTTPS. -
CloudFront-is-Desktop-Viewer
,CloudFront-is-Mobile-Viewer
eCloudFront-is-Tablet-Viewer
consentono di personalizzare l'output dei temi in base al tipo di dispositivo dell'utente finale.
-
-
Inoltrare tutte le stringhe di query alla cache in base ai loro valori, perché WordPress dipende da questi; possono anche essere utilizzati per invalidare gli oggetti memorizzati nella cache.
Se si desidera utilizzare il sito Web con un nome di dominio personalizzato (ovvero, diverso da *.cloudfront.net
), inserire gli URI appropriati in Alternate Domain Names (Nomi di dominio alternativi) in Distribution Settings (Impostazioni di distribuzione). In questo caso, è necessario anche un certificato SSL per il nome di dominio personalizzato. È possibile richiedere certificati SSL tramite AWS Certificate Manager e configurarli in base a una distribuzione CloudFront.
Ora, creare altri due comportamenti della cache per i contenuti dinamici: uno per la pagina di accesso (modello di percorso: wp-login.php
) e uno per la dashboard di amministrazione (modello percorso: wp-admin/*
). Questi due comportamenti hanno esattamente le stesse impostazioni, ovvero:
-
Applicazione della policy solo HTTPS per il protocollo del visualizzatore.
-
Tutti i metodi HTTP consentiti.
-
Cache basata su tutte le intestazioni HTTP.
-
Inoltro di tutti i cookie
-
Inoltro e caching eseguiti in base a tutte le stringhe di query.
Il motivo alla base di questa configurazione è che questa sezione del sito Web include un livello di personalizzazione elevato e, in genere, ha solo pochi utenti, per cui l'efficienza del caching non è una priorità. L'obiettivo è quello di mantenere la configurazione semplice per garantire la massima compatibilità con qualsiasi plug-in installato migrando tutti i cookie e le intestazioni nell'origine.
Il plug-in AWS per WordPress discusso nell'Appendice B crea automaticamente una distribuzione CloudFront che soddisfa i requisiti della configurazione precedente.
Per impostazione predefinita, WordPress esegue la memorizzazione in locale sul server Web, più in particolare nello storage a blocchi (Amazon EBS) per la distribuzione a server singolo e nello storage di file (Amazon EFS) per la distribuzione elastica. Oltre a ridurre i costi di storage e trasferimento dei dati, la migrazione di asset statici su Amazon S3 offre un migliore livello di scalabilità, disponibilità dei dati, sicurezza e prestazioni. Esistono diversi plug-in che semplificano la migrazione di contenuti statici su Amazon S3; uno di questi è W3 Total Cache