2015-08-09 18 views
16

Ho impostato un nuovo dominio e server Web e una distribuzione CloudFront per servirlo.Mysterious CloudFront "Bad request"

CloudFront sta servendo con successo il sito sul proprio dominio: d1lnegrqin0up5.cloudfront.net

voglio mpe.io (senza www) per andare al server web, e www.mpe.io per andare al Distribuzione CloudFront. Come tale, ho impostato un record CNAME per www.mpe.io che punta al dominio CloudFront menzionato sopra.

Gli ho dato un paio d'ore e www.mpe.io va su CloudFront (si dice "Generato da cloudfront" nelle pagine risultanti) ma tutte le richieste risultano semplici in ERRORE di richiesta errata.

Si noti che se si passa direttamente al dominio CloudFront, tutto funziona correttamente. Come posso ottenere www.mpe.io con successo servendo i file nello stesso modo del dominio CloudFront?

Specifiche:

record DNS del dominio:

  • nome, TTL, Tipo, Record
  • mpe.io., 3600, A, 101.0.76.155
  • www.mpe .io., 3600, CNAME, d1lnegrqin0up5.cloudfront.net
  • * .mpe.io., 3600, A, 101.0.76.155

impostazioni di distribuzione: metodo

  • consegna: Web
  • Cookie Logging: Spento
  • Stato Distribuzione: Schierato Classe
  • prezzo: uso Tutto Edge (Best Performance)
  • Stato: Abilitato
  • Nomi di dominio alternativi (CNAME): - (potrebbe essere importante?)
  • Certificato SSL: certificati predefinita CloudFront (* .cloudfront.net)
  • Domain Name: d1lnegrqin0up5.cloudfront.net
  • personalizzato SSL Supporto client: -
  • predefinito Root Oggetto:/index

risposta

31

Tutto bene! Ho risposto alla mia domanda mentre la stavo scrivendo.

Era il campo relativo ai nomi di dominio alternativi (CNAME) nelle impostazioni della distribuzione. Quando ho aggiunto www.mpe.io come uno di loro e gli ho dato un po 'di tempo, ha funzionato bene.

+3

Questo perché il browser invia qualsiasi nome host visualizzato nella casella dell'indirizzo, nell'intestazione 'Host:'. CNAME in DNS non cambiano questo comportamento da parte dei browser. Senza configurare la distribuzione CloudFront per l'esatto 'Host:' le intestazioni che dovrebbe assumere sono associate alla distribuzione (la configurazione del nome di dominio alternativa), CF non ha modo di sapere * quale * distribuzione dovrebbe elaborare la richiesta. Senza di ciò, CF non ha assolutamente nulla da continuare, e quindi "cattiva richiesta"." –

+0

Ma la richiesta non ha ricevuto DNS'd (sì, l'ho appena fatto) direttamente nel dominio per una distribuzione specifica (d1lnegrqin0up5.cloudfront.net)? Ho pensato che non ci sarebbe stato molto tempo per prendere decisioni da quel punto Ho pensato che sarebbe stato un qualche tipo di sicurezza, quindi i domini casuali non potevano semplicemente usare la mia distro (ma questo è semplicemente fuori di testa - non ha molto senso quando ci penso ulteriormente) –

+2

Sicuro Il DNS apparentemente funzionava bene, altrimenti non avresti visto un errore * in arrivo per CloudFront * ... ma gli indirizzi IP che ricevi in ​​risposta all'interrogazione del tuo hostname '* .cloudfront.net' sono condivisi da decine o centinaia o migliaia di altre distribuzioni L'header 'Host:' inviato dal browser è il meccanismo utilizzato da CloudFront per elaborare * quale * distribuzione verrà elaborata la richiesta e la configurazione di "Nomi di dominio alternativi" è la modalità di provisioning di questi. –