Sto cercando di fare qualcosa che dovrebbe essere relativamente semplice: voglio impostare alcuni domini e sottodomini per reindirizzare al dominio principale per il nostro sito, ma voglio mettere i reindirizzamenti su Cloudfront. Tutto funziona tranne il reindirizzamento del percorso principale, che mi fornisce un file XML che descrive in parte il bucket S3.
sfondo
S3
S3 ti consente di configurare un bucket per tutti i reindirizzamenti , come:
Provando questo, l'endpoint web (brass9-com.s3-website-us-west-1.amazonaws.com) fa quello che dovrebbe - reindirizza a brass9.com. Buona.
Cloudfront
Cloudfront ti consente di indicare un bucket S3, ma il modo in cui ti suggerisce di farlo è sbagliato: invece di indicare il bucket con il suo nome, come brass9-com.s3.amazonaws.com, devi utilizzare l'Endpoint Web sopra. Diverso da quello che puoi lasciare tutto ai suoi valori predefiniti e ottenere un buon comportamento di reindirizzamento. Quindi, un percorso come www.brass9.com/portfolio reindirizza correttamente dove dovrebbe. Anche buono.
Il problema: il reindirizzamento del dominio principale
L'unica cosa che poi non funziona è il reindirizzamento dal semplice www.brass9.com . Invece di ottenere un reindirizzamento ti dà questo strano risultato:
<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>brass9-com</Name><Prefix></Prefix>
<Marker></Marker><MaxKeys>1000</MaxKeys><IsTruncated>false</IsTruncated>
</ListBucketResult>
OK... . Quindi questo non è completamente inaspettato , perché non esiste alcun oggetto radice predefinito. Ma quale oggetto root predefinito potrei eventualmente specificare per prevenire questo comportamento? Qual è il nome dell'oggetto di reindirizzamento S3, se presente, a cui devo puntare? O c'è qualche altra corretta configurazione, o è solo un bug nel modo in cui Cloudfront e S3 interagiscono che Amazon deve risolvere?
Soluzione nota non funzionante: oggetto root predefinito
È possibile specificare un oggetto radice predefinito di index.html, ma non aiuta nessuno: cambia semplicemente il problema. L'URL di Cloudfront reindirizza invece a /index.html sul sito principale, che è un 404 (non utilizziamo un file index.html, è un sito basato sul framework lato server). Potrei mettere un index.html sul server, ma questo sconfigge il piccolo guadagno di velocità dell'utilizzo di Cloudfront in primo luogo.
Domande simili
Una domanda pone qualcosa di simile ma restituisce una risposta vuota a 0 byte per qualche motivo invece di quello che vedo, una risposta XML. Non include una domanda su quel problema o una risoluzione.
Articoli Correlati
Un articolo propone di pubblicare l'intero sito sia nel dominio bare che in www . Questo si avvita con i segnalibri di qualsiasi utente, il tuo ranking di ricerca, ecc. Ecc.
Molti discutono di ospitare un sito Web statico su S3 e Cloudfront anziché uno schema di reindirizzamento, e quindi non sono correlati.
Quindi, come posso farlo correttamente?
Schermata di Cloudfront Configuration - nessun oggetto root predefinito, che punta all'origine S3. Ignora InProgress: avevo appena attivato e disattivato l'oggetto radice predefinito per testarlo.
E l'origine configura per quella distribuzione:
GET /
prima di aver corretto la configurazione per utilizzare l'endpoint web.