Sottodominio jolly (* .example.com) con DNS Amazon Route53 e S3


12

Sto ospitando un sito Web statico utilizzando Amazon Route53 per DNS e S3 per file html. Funziona benissimo.

L'impostazione attuale è:

example.com.  A   ALIAS s3-website-us-east-1.amazonaws.com. 
www.example.com. CNAME www.example.com.s3-website-us-east-1.amazonaws.com

(NOTA: example.com e www.example.com sono bucket S3. I miei file HTML risiedono nel bucket example.com.)

Ora voglio aggiungere un sottodominio con caratteri jolly come questo - questo è quello che ho provato:

*.example.com. CNAME  www.example.com.s3-website-us-east-1.amazonaws.com

L'idea è di avere qualcosa.esempio.com per risolvere correttamente il sito web. Ma questo non sembra funzionare. Quindi quando vado al sito Web: joker.example.com vedo un messaggio di errore sul browser:

Code: NoSuchBucket
Message: The specified bucket does not exist
BucketName: joker.example.com

Risposte:


10

La risposta @ edvinas.me è corretta. Devi creare una distribuzione cloudfront per il tuo bucket.

Quando si crea la distribuzione cloudfront, impostare l'opzione Nomi di dominio alternativi su * .example.com.

Quindi utilizzare l'URL del cloudfront come d3lt3rsz2leycm.cloudfront.net.

Ora puoi aggiungere un sottodominio con caratteri jolly in questo modo:

*.example.com. CNAME  3lt3rsz2leycm.cloudfront.net.    

E dovrebbe funzionare.


1

Amazon S3 utilizza il nome host per determinare il nome del bucket.

- http://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html

Il nome host è la minuscola del valore inviato dal browser Host:nell'intestazione. Non esiste un modo per configurare un bucket per rispondere a più nomi host.

Ci sono alcuni modi rotondi per farlo, a seconda di ciò che stai cercando di fare, ma richiederà un'istanza EC2 che esegue HAProxy, Varnish, Apache o qualcosa di simile, per rispondere alle richieste dei nomi host con caratteri jolly con un reindirizzamento a riscrivere la barra degli indirizzi del browser sul nome host / bucket reale o trasferire le intestazioni della richiesta e inoltrare la richiesta a S3, che non è così inefficiente come potrebbe sembrare, poiché non ci sono costi di trasferimento dati tra S3 ed EC2 all'interno dello stesso regione e la latenza è bassa.


1

Il bucket S3 è configurato per accettare solo richieste per example.com (e / o www.example.com). Non è possibile configurare il bucket per accettare o eventuali sottodomini specifici che si desidera essere attivi.

L'unico modo per realizzarlo è utilizzare un servizio esterno come Cloudfront http://aws.amazon.com/cloudfront/ che farebbe il proxy delle richieste.

La risposta di Michael (sqlbot) sembra coprirla in modo più dettagliato.


3
Come farlo - È la domanda stessa.
Jasper,

Poiché la configurazione non è supportata, è necessario utilizzare un servizio esterno per questo.
phoops
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.