Піддомен Wildcard (* .example.com) з Amazon Route53 DNS та S3


12

Я розміщую статичний веб-сайт за допомогою Amazon Route53 для DNS та S3 для html-файлів. Це прекрасно працює.

Поточна установка:

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

(ПРИМІТКА: example.com та www.example.com - це відра S3. Мої HTML-файли містяться у відрі example.com.)

Тепер я хочу додати піддомен wildcard таким чином - це те, що я спробував:

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

Ідея полягає у тому, щоб мати що-небудь.example.com, щоб правильно вирішити веб-сайт. Але це, здається, не працює. Тому коли я переходжу на веб-сайт: joker.example.com, я бачу повідомлення про помилку в браузері:

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

Відповіді:


10

Відповідь @ edvinas.me правильна. Ви повинні створити розподіл хмари для вашого відра.

Під час створення розповсюдження хмарного фронту встановіть для параметра альтернативних доменних імен * .example.com.

Потім використовуйте URL-адресу хмарного переходу, як d3lt3rsz2leycm.cloudfront.net.

Тепер ви можете додати піддомен wildcard таким чином:

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

І треба працювати.


1

Amazon S3 використовує ім'я хоста для визначення імені відра.

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

Ім'я хоста - це малий регістр значення, що надсилається браузером у Host:заголовку. Існує не спосіб налаштувати відро для відповіді на кілька імен хостів.

Існує декілька способів цього досягти, залежно від того, що ви намагаєтеся зробити, але для цього потрібно вимагати екземпляр EC2 під керуванням HAProxy, Varnish, Apache або щось подібне, щоб відповісти на запити імен хост-підказок із перенаправленням на переписати адресний рядок веб-переглядача на справжнє ім’я хоста / відра або з’єднати заголовки запиту та проксі просити запит до S3, що не так ефективно, як це може здатися, оскільки між S3 та EC2 плата за передачу даних не відбувається в межах одного області, а затримка низька.


1

Ваше відро для S3 налаштоване приймати лише запити для example.com (та / або www.example.com). Ви не можете налаштувати своє відро для прийому чи будь-яких конкретних субдоменів, якими ви хочете бути активними.

Єдиний спосіб зробити це можна за допомогою зовнішньої служби, наприклад Cloudfront http://aws.amazon.com/cloudfront/, яка б проксирувала запити.

Відповідь Майкла (sqlbot), здається, висвітлює це більш докладно.


3
Як це зробити - це питання саме по собі.
Джаспер

Оскільки конфігурація не підтримується, для цього потрібно використовувати зовнішній сервіс.
phoops
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.