Ho un dominio formulagrid.com
.Supporto del reindirizzamento URL HTTPS con una singola distribuzione CloudFront
Sto utilizzando AWS S3 per ospitarlo come sito Web statico. Il mio problema era che volevo per reindirizzare il sottodominio www al dominio nuda in questo modo:
https://www.formulagrid.com -> https://formulagrid.com
http://www.formulagrid.com -> https://formulagrid.com
Amazon fornisce URL reindirizzamento da S3 secchio per S3 secchio se entrambi sono setup per hosting di siti web statici.
Quindi quello che ho dovuto fare è stato istituito due secchi:
formulagrid.com
- sito web vero e propriowww.formulagrid.com
- esiste solamente per reindirizzare al sito vero e proprio
Questo funziona perfettamente bene se stai operando solo su HTTP, ma S3 non ha assolutamente supporto per HTTPS.
Il modo in cui è possibile utilizzare HTTPS per connettersi a un sito Web statico S3 consiste nell'impostare una distribuzione CloudFront davanti a un bucket S3. CloudFront, tuttavia, mentre fornisce HTTPS, esiste principalmente per funzionare come un CDN.
Inizialmente, avevo una singola configurazione di distribuzione CloudFront davanti al secchio S3 che contiene il sito reale. Tutto sembrava operativo: il sito era distribuito sul CDN, aveva HTTPS e HTTP reindirizzato a HTTPS.
C'è stata un'eccezione.
https://www.formulagrid.com
era una pagina completamente rotto
Dopo aver cercato di trovare la fonte dell'errore per un po ', mi sono reso conto che è perché non stava attraversando il CDN, e cercando di accedere S3 over HTTPS non funziona.
Infine, quello che ho dovuto fare era fornire un'altra distribuzione per sedersi davanti al secchio S3 www
in modo che fosse accessibile tramite HTTPS. È qui che arrivano le mie preoccupazioni perché, come ho detto prima, lo scopo principale di CloudFront è quello di essere un CDN.
Non ha alcun senso per me avere un CDN seduto di fronte a un URL che reindirizza a un altro. Inoltre, viene sollevata la questione se ricevere una doppia addebito per ogni richiesta che colpisce il sottodominio www
perché avrebbe colpito l'altra distribuzione di CloudFront dopo essere stato reindirizzato.
Questo è frustrante perché sto cercando di eseguire un'architettura "serverless" utilizzando Lambda e dover eseguire il provisioning di un'istanza EC2 solo per eseguire la riscrittura dell'URL non è qualcosa che voglio fare a meno che non sia la mia ultima risorsa.
La soluzione sarebbe banale se Amazon ha offerto alcuna forma di riscrittura degli URL o se CloudFront stesso ha fatto il reindirizzamento, ma nessuna di queste esistono per quanto ne so (fatemi sapere se lo fanno).
Sono nuovo di AWS quindi spero che qualcuno con più esperienza possa indicarmi la giusta direzione.
Grazie per la risposta! Fondamentalmente ho fatto tutto ciò che hai detto. C'è una domanda che ho però. Per le richieste che vengono reindirizzate, non andrebbe 'CDN -> vuoto S3 -> CDN -> S3'? Questo è il mio problema principale – m0meni
Dopo che CloudFront memorizza il reindirizzamento dal bucket vuoto, sarà CF> CF> S3 e se il contenuto del sito S3 è memorizzato nella cache, solo CF> CF. Dopo l'atterraggio iniziale vengono reindirizzati al dominio "nudo" e i collegamenti successivi li terranno lì ... questo non dovrebbe comportare diversamente se CF avesse la capacità nativa di reindirizzare a domini diversi - quelle richieste iniziali continuerebbero a colpire CF due volte , dal momento che il reindirizzamento porta il browser a ciò che il browser * assumerà * sempre * è un posto diverso, perché il nome host cambia ... sia che sia effettivamente la stessa macchina o meno. –
Questo non significa che mi verrebbero addebitati due volte per ogni richiesta reindirizzata? Una volta per ogni richiesta CF? – m0meni