Tên miền phụ ký tự đại diện (* .example.com) với DNS và S3 của Amazon Route53


12

Tôi đang lưu trữ một trang web tĩnh bằng Amazon Route53 cho DNS và S3 cho các tệp html. Nó đang hoạt động tốt.

Thiết lập hiện tại là:

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

(LƯU Ý: example.com và www.example.com là các nhóm S3. Các tệp HTML của tôi nằm trong nhóm example.com.)

Bây giờ tôi muốn thêm một tên miền phụ ký tự đại diện như thế này - đây là những gì tôi đã thử:

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

Ý tưởng là có bất cứ điều gì.example.com để giải quyết chính xác cho trang web. Nhưng điều này dường như không hoạt động. Vì vậy, khi tôi truy cập trang web: joker.example.com tôi thấy thông báo lỗi trên trình duyệt:

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

Câu trả lời:


10

Câu trả lời @ edvinas.me là chính xác. Bạn phải tạo một bản phân phối trên nền tảng đám mây cho thùng của bạn.

Khi bạn tạo phân phối trên nền tảng đám mây, hãy đặt tùy chọn Tên miền thay thế thành * .example.com.

Sau đó sử dụng url trên đám mây như d3lt3rsz2leycm.cloudfront.net.

Bây giờ bạn có thể thêm một tên miền phụ ký tự đại diện như thế này:

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

Và nên làm việc.


1

Amazon S3 sử dụng tên máy chủ để xác định tên nhóm.

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

Tên máy chủ là chữ thường của giá trị được gửi bởi trình duyệt trong Host:tiêu đề. Không có cách nào để cấu hình một nhóm để đáp ứng với nhiều tên máy chủ.

Có một số cách xoay vòng để thực hiện điều này, tùy thuộc vào những gì bạn đang cố gắng thực hiện, nhưng sẽ yêu cầu một phiên bản EC2 chạy HAProxy, Varnish, Apache hoặc một cái gì đó tương tự, để đáp ứng các yêu cầu cho tên máy chủ ký tự đại diện với chuyển hướng đến viết lại thanh địa chỉ của trình duyệt thành tên máy chủ / tên nhóm thực hoặc để chuyển các tiêu đề yêu cầu và ủy quyền yêu cầu cho S3, điều này không hiệu quả như có thể xảy ra, vì không có phí chuyển dữ liệu giữa S3 và EC2 trong cùng một khu vực, và độ trễ thấp.


1

Nhóm S3 của bạn được định cấu hình để chỉ chấp nhận các yêu cầu cho example.com (và / hoặc www.example.com). Bạn không thể định cấu hình nhóm của mình để chấp nhận hoặc bất kỳ tên miền phụ cụ thể nào bạn muốn hoạt động.

Cách duy nhất bạn có thể hoàn thành việc này là sử dụng dịch vụ bên ngoài như Cloudfront http://aws.amazon.com/cloudfront/ để ủy quyền các yêu cầu.

Câu trả lời của Michael (sqlbot) dường như sẽ đề cập chi tiết hơn về vấn đề này.


3
Làm thế nào để làm điều đó - chính là câu hỏi.
Jasper

Vì cấu hình không được hỗ trợ, bạn cần sử dụng dịch vụ bên ngoài cho việc đó.
phoops
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.