Amazon S3: статические веб-сайты: собственный домен или субдомен


79

Amazon.com только что объявил, что можно размещать статические веб-сайты в ведре S3. Я зашел на их страницу настройки по адресу http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?WebsiteHosting.html и создал корзину для своего статического веб-сайта, и она работала нормально. У меня есть URL-адрес в формате http: // [ название моей корзины] .s3-website-us-east-1.amazonaws.com /.

Однако я хотел бы указать принадлежащий мне поддомен (например, static.mydomain.com) на свой статический веб-сайт в Amazon S3. Кто-нибудь придумал, как это сделать?

Я ценю любую помощь, которую вы можете мне оказать.


проверить это arrayofcode.com/...
Ajitesh Singh

Ответы:


182

Оказывается, чтобы заставить его работать, нельзя просто сопоставить произвольный поддомен с любым произвольным ведром. Полное имя поддомена должно совпадать с именем корзины S3 .

  1. Предположим, имя вашего сайта - static.mydomain.com . Затем вам нужно создать корзину S3 с тем же именем, с именем static.mydomain.com .
  2. После настройки этого сегмента как статического веб-сайта S3 ему будет назначен URL-адрес, который выглядит примерно так: http://static.mydomain.com.s3-website-us-east-1.amazonaws.com .
  3. Перейдите на хост своего домена и сопоставьте свой субдомен с URL-адресом из шага 2. В enom.com это означало сопоставление хоста " static " с адресом " static.mydomain.com.s3-website-us-east-1.amazonaws .com "как запись CNAME.

Спасибо Урии и Дэвиду за предложения. В конце концов я получил ответ на форуме Amazon AWS .


Я не знаю. Вам придется попробовать. Кроме того, вы, вероятно, будете использовать SSL-сертификат Amazon, а не свой собственный.
Джей Годс,

2
на самом деле вы можете просто указать своим cname на s3-website-us-east-1.amazonaws.com , он, похоже, игнорирует поддомен и использует HTTP-заголовок HOST для указания сегмента. Кажется, не имеет значения, совпадают ли они два или даже присутствует ли поддомен.
lynks

@lynks - можно даже регион сбросить и просто зайти с s3.amazonaws.com
plyawn

@hnprashanth, это правильно (используя только S3), у вас может быть до 10 поддоменов, указывающих на одно и то же местоположение ресурса с распределением CloudFront, хотя ... проверьте docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/…
plyawn

Это работает. AWS заявляет об этом в раннем вводном разделе, но к тому времени, когда вы пройдете все этапы, легко / вероятно забудете об этом. Это лучшее решение, чем решение lynks cname, потому что теперь AWS взимает транзакционную плату за поиск cname каждым пользователем.
Mike_Laird 02

5

Убедитесь, что вы соблюдаете соглашения об именах сегментов DNS S3 при создании сегмента.

Потом:

  1. Включите поддержку веб-сайта S3 для корзины с помощью Консоли управления AWS, выбрав Свойства -> Веб-сайт.

  2. Убедитесь, что файлы в корзине имеют общедоступные разрешения на чтение

  3. Попробуйте посетить веб-сайт, используя конечную точку, указанную в консоли управления.

  4. Настройте CNAME, используя указанную конечную точку (например www.example.com CNAME www.example.com.s3-website-us-east-1.amazonaws.com)


Я сделал все 4 шага. Шаг 3 работает. Имя cname на шаге 4 настраивается (с enom.com, который успешно работает с другими поддоменами), но ни один поддомен s3 не попадает в браузер, ни пинг не работает. С помощью heroku.com и blogger.com вы должны сообщить им, какой из ваших поддоменов будет попадать в какое приложение heroku или блог blogger. Статические веб-сайты S3, похоже, не имеют этого.
Джей Годс

2
@Jay Godse Как называется корзина с поддержкой вашего веб-сайта и ее регион?
Юрай Карпентер,

4
  1. Создайте зону хостинга, скажем, mydomain.com. Вы можете использовать веб-интерфейс DNS30 .
  2. Теперь создайте запись CNAME для этой размещенной зоны.
  3. Добавьте запись ресурса со следующей деталью. Имя как «mydomain.com» Введите как «CNAME» Значение как «mydomain.com.s3.amazonaws.com» TTl как «в требуемой конфигурации»

Надеюсь, это также сработает для static.mydomain.com

С уважением-

Удит



3

Как насчет использования службы DNS, такой как Route 53, которую предоставляет Amazon. Настройте его с помощью CNAME из вашего поддомена на общедоступный URL-адрес корзины. Конечно, если ваша доменная компания предоставляет конфигурацию CNAME, это может работать напрямую.


1

Обновление 2019: собственный хостинг поддоменов AWS в S3

На сегодняшний день у меня сработали следующие шаги, чтобы создать рабочий субдомен для статического веб-сайта, размещенного на AWS S3:

  1. Создайте корзину с именем поддомена. В этом примере www. Субтест .mysite.com

ковш aws

Примечание. Убедитесь, что на вкладке «Разрешение» сегмента: -Блокировать общий доступ (настройки сегмента) -Список управления доступом и -Политика корзины правильно настроена, чтобы убедиться, что сегмент является общедоступным. (Предполагая, что вы уже сделали это для своей корзины корневого домена, эти настройки могут быть отражены в этой корзине поддомена)

Разрешения корзины AWS

  1. Загрузите файл index.html в корзину

индексный файл в корзине s3

  1. Создайте запись CNAME у своего провайдера домена Запись CNAME в namecheap
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.