Subdomain Wildcard (* .example.com) dengan Amazon Route53 DNS dan S3

12

Saya hosting situs web statis menggunakan Amazon Route53 untuk DNS dan S3 untuk file html. Ini bekerja dengan baik.

Pengaturan saat ini adalah:

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

(CATATAN: example.com dan www.example.com adalah bucket S3. File HTML saya berada di bucket example.com.)

Sekarang saya ingin menambahkan subdomain wildcard seperti ini - ini yang saya coba:

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

Idenya adalah memiliki segalanya.example.com untuk menyelesaikan dengan benar ke situs web. Tapi ini sepertinya tidak berhasil. Jadi ketika saya mengunjungi situs web: joker.example.com saya melihat pesan kesalahan di browser:

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

Jawaban:

10

Jawaban @ edvinas.me benar. Anda harus membuat distribusi cloudfront untuk bucket Anda.

Saat Anda membuat distribusi cloudfront, atur opsi Nama Domain alternatif ke * .example.com.

Kemudian gunakan url cloudfront seperti d3lt3rsz2leycm.cloudfront.net.

Sekarang Anda dapat menambahkan subdomain wildcard seperti ini:

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

Dan harus bekerja.

Javier Arnáiz
sumber
1

Amazon S3 menggunakan nama host untuk menentukan nama bucket.

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

Nama host adalah huruf kecil dari nilai yang dikirim oleh browser di Host:header. Tidak ada cara untuk mengonfigurasi bucket untuk merespons beberapa nama host.

Ada beberapa cara bundaran untuk mencapai ini, tergantung pada apa yang Anda coba lakukan, tetapi itu akan membutuhkan contoh EC2 menjalankan HAProxy, Varnish, Apache, atau sesuatu yang serupa, untuk menanggapi permintaan nama host wildcard dengan pengalihan ke tulis ulang bilah alamat peramban menjadi nama host asli / nama bucket atau untuk mengosongkan header permintaan dan proksi permintaan ke S3, yang tidak seefisien kedengarannya, karena tidak ada biaya transfer data antara S3 dan EC2 dalam waktu yang sama wilayah, dan latensi rendah.

Michael - sqlbot
sumber
1

S3 Bucket Anda dikonfigurasi untuk hanya menerima permintaan untuk example.com (dan / atau www.example.com). Anda tidak dapat mengonfigurasi ember Anda untuk menerima atau sub-domain tertentu yang Anda inginkan untuk aktif.

Satu-satunya cara Anda bisa menyelesaikan ini adalah dengan menggunakan layanan eksternal seperti Cloudfront http://aws.amazon.com/cloudfront/ yang akan mem -proxy permintaan.

Balasan Michael (sqlbot) tampaknya membahas hal ini lebih detail.

phoops
sumber
3
Bagaimana cara melakukannya - ADALAH pertanyaan itu sendiri.
Jasper
Karena konfigurasi tidak didukung, Anda perlu menggunakan layanan eksternal untuk itu.
phoops