Статический хостинг на Amazon S3 - Конфигурация DNS - PullRequest
113 голосов
/ 29 ноября 2011

Я работаю над небольшим веб-приложением (все на стороне клиента), которое я хочу разместить на Amazon S3. Я нашел несколько руководств по этому вопросу и сумел создать себе корзину (с тем же именем, что и у моего домена), установить ее в качестве веб-сайта и загрузить некоторый контент.

Где я борюсь, и где вся документация начинает становиться немного расплывчатой, это как правильно настроить мой DNS.

Все, что мог предложить мой регистратор ( 123-reg ), - это переадресация через Интернет, которая дает мне mydomain.com.s3.amazonaws.com

Что мне нужно настроить и где (например, 123-reg / Amazon) я могу получить чистый URL?

Ответы [ 4 ]

239 голосов
/ 02 декабря 2011

Похоже, вы уже проделали большую часть работы. Для ясности я еще раз пройдусь по этим шагам, чтобы убедиться, что вы правильно настроили:

  1. Создайте корзину s3, используя свое доменное имя в качестве имени корзины (ваше имя корзины должно быть www.example.com, если вы хотите, чтобы ваш сайт был example.com или www.example.com)

  2. Загрузите ваш контент в корзину s3. Выберите непротиворечивое имя для файлов индекса вашего сайта (обычно index.html). Вы также можете загрузить пользовательскую страницу для 404 Not Found ошибок. Назовите это 404.html. Дайте разрешения на чтение каждому файлу на вашем веб-сайте, чтобы публика могла его просматривать. Не давайте никаких дополнительных прав корзине, только файлы внутри.

  3. Настройте ваше ведро как веб-сайт. С помощью консоли AWS (https://console.aws.amazon.com/s3/) вы можете выбрать свой сегмент, нажать «Свойства», а затем перейти на вкладку «Веб-сайт». Нажмите «Включено» и установите индексный документ «index.html», а документ об ошибке - «404.html». Вам также необходимо настроить ведро с правами доступа, чтобы разрешить доступ через Интернет (http://docs.amazonwebservices.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html)

  4. Запишите URL-адрес «конечной точки» на вкладке конфигурации веб-сайта. Здесь живет ваш сайт. Вы можете открыть ссылку в новом окне, и вы должны увидеть свой сайт так же, как он будет выглядеть. Нажмите вокруг и убедитесь, что все работает как положено.

Вы ДОЛЖНЫ использовать адрес конечной точки на всех этапах ниже. Обычный www.example.com.s3.amazonaws.com не будет работать - вам нужно использовать региональную версию (http://www.example.com.s3 -website-us-east-1.amazonaws.com / )

Теперь мы можем настроить DNS для предоставления вам чистого, настраиваемого URL.

Сначала мы сопоставим www.example.com с вашим сайтом.

Используя инструменты вашего провайдера DNS, (в вашем случае 123-reg) вам нужно создать запись CNAME для сопоставления www.example.com с www.example.com.s3-website-us-east-1.amazonaws. ком

CNAME - единственное, что вам нужно, если вы просто хотите www.example.com. Большинство людей также хотят, чтобы «example.com» работал, поэтому нам нужен еще один шаг.

example.com часто называют «голым» доменом или вершиной записи домена. Причина в том, что это не может быть CNAME. CNAME работают только на поддоменах, таких как "www." Это затрудняет указание на s3.

Обычный подход состоит в том, чтобы использовать сервис для автоматического перенаправления любого запроса, идущего на example.com, чтобы указать на www.example.com. Затем вы получите вашу запись CNAME, и ваш сайт будет обслуживаться с s3.

Автоматическое перенаправление невозможно при использовании старого старого DNS, поэтому вам придется использовать другой сервис. Некоторые провайдеры DNS предлагают эту услугу вместе со своими DNS (Godaddy делает, amazon route53 нет. Не уверен насчет 123-reg)

Если ваш DNS-провайдер этого не делает, есть несколько бесплатных сервисов. Я использовал http://wwwizer.com/naked-domain-redirect - он не требует регистрации или оплаты.

Чтобы использовать этот тип службы, вам нужно создать DNS-запись «А» для вашего открытого домена. Для службы wwwizer.com вам нужно создать запись A, чтобы указать example.com на 174.129.25.170. Вот и все!

Итак, при такой настройке, если пользователь введет example.com в свой браузер, произойдет следующее:

  1. DNS-запрос: example.com -> 174.129.25.170 (сервис wwwizer.com)
  2. HTTP-запрос к 174.129.25.170 для example.com
  3. 174.129.25.170 redirects example.com -> www.example.com
  4. DNS-запрос: www.example.com -> CNAME to www.example.com.s3-website-us-east-1.amazonaws.com
  5. DNS-запрос: www.example.com.s3-website-us-east-1.amazonaws.com -> указывает на Amazon S3
  6. HTTP-запрос для www.example.com теперь обслуживается Amazon S3

Наслаждайтесь!

1 голос
/ 01 января 2013

Я полагаю, что вы должны выбрать все документы в вашей корзине, щелкнуть правой кнопкой мыши и выбрать "Сделать общедоступным". Вы должны делать это каждый раз, когда что-то меняется в ведре. Затем я обычно щелкаю правой кнопкой мыши по корзине, выбираю свойства, выбираю разрешения в правой панели, затем добавляю «Все как« получатель », затем даю им только разрешения« список ». Я могу решить мои проблемы. Вы также можете перенаправить незащищенный домен на домен www в S3 в разделе «Хостинг статических сайтов». Вероятно, это самый простой способ. Еще раз спасибо за вашу помощь.

Тим

0 голосов
/ 04 июля 2019

Обновление 2019

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

DNS setting for bucket mapping

0 голосов
/ 25 января 2013

С экрана расширенного DNS на панели управления 123-reg

  • Я начал с нажатия кнопки «Сбросить DNS» до настроек по умолчанию 123-reg.

Это дало мне следующее:

DNS-запись Тип Приоритет TTL Назначение / Цель * A 81.xx.xx.xx @ A 81.xx.xx.xx @ MX 10 xx0.123-reg.co.uk @ MX 20 xx1.123-reg.co.uk

  • Затем я добавил эту запись

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

Из их Руководства по управлению DNS pdf говорится, что "@ record" относится к "вашему домену в его самой чистой форме без поддоменов", то есть к голому домену stackoverflow.com

Но здесь не упоминается, что такое «запись», я предполагал, что это будет перехват всех поддоменов, и подумал, что это может перегрузить запись CNAME, но это не так.

...