Статический хостинг на Amazon S3 - Конфигурация DNS
Я работаю над небольшим веб-приложением (все на стороне клиента), которое я хочу разместить на Amazon S3. Я нашел несколько руководств по этому вопросу и сумел создать себе корзину (с тем же именем, что и у моего домена), настроить ее как веб-сайт и загрузить некоторый контент.
Где я борюсь, и где вся документация начинает становиться немного расплывчатой, это как правильно настроить мой DNS.
Все, что мог предложить мой регистратор ( 123-reg), это веб-пересылка, которая дает мне mydomain.com.s3.amazonaws.com
Что мне нужно настроить, и где (например, 123-reg / Amazon) я могу получить чистый URL?
3 ответа
Похоже, вы уже сделали большую часть работы. Для ясности я еще раз пройдусь по этим шагам, чтобы убедиться, что вы настроены правильно:
Создайте корзину s3, используя свое доменное имя в качестве имени корзины (ваше имя должно быть www.example.com, если вы хотите, чтобы ваш сайт был example.com или www.example.com)
Загрузите свой контент в корзину S3. Выберите непротиворечивое имя для файлов индекса вашего сайта (обычно index.html). Вы также можете загрузить пользовательскую страницу для 404 Not Found ошибок. Назовите это 404.html. Дайте разрешения на чтение каждому файлу на вашем веб-сайте, чтобы публика могла его просматривать. Не давайте никаких дополнительных прав корзине, только файлам внутри.
Настройте свое ведро как веб-сайт. С помощью консоли AWS ( https://console.aws.amazon.com/s3/) вы можете выбрать свой сегмент, нажать "Свойства", а затем перейти на вкладку "Веб-сайт". Нажмите "Включено" и установите индексный документ "index.html", а документ об ошибке - "404.html". Вам также необходимо настроить ведро с разрешениями доступа, чтобы разрешить доступ через Интернет ( http://docs.amazonwebservices.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html).
Запишите 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.com
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 в свой браузер, произойдет следующее:
- DNS-запрос: example.com -> 174.129.25.170 (сервис wwwizer.com)
- HTTP-запрос к 174.129.25.170 для example.com
- 174.129.25.170 redirects example.com -> www.example.com
- DNS-запрос: www.example.com -> CNAME для www.example.com.s3-website-us-east-1.amazonaws.com
- DNS-запрос: www.example.com.s3-website-us-east-1.amazonaws.com -> указывает на Amazon S3
- HTTP-запрос для www.example.com теперь обслуживается Amazon S3
Наслаждайтесь!
Обновление 2019
На сегодняшний день у меня работали следующие настройки DNS, чтобы статический веб-сайт AWS S3 работал:
Я считаю, что вы должны выбрать все документы в вашем ведре, щелкнуть правой кнопкой мыши и выбрать "Сделать общедоступным". Вы должны делать это каждый раз, когда что-то меняется в ведре. Затем я обычно щелкаю правой кнопкой мыши по корзине, выбираю свойства, выбираю разрешения в правой панели, затем добавляю "Все как" получатель гранта ", затем даю им только разрешения" список ". Остальная часть вашей статьи превосходна. Помогла часть о голом домене". Я могу решить мои проблемы. Вы также можете перенаправить незащищенный домен на домен www в S3 в разделе "Хостинг статических сайтов". Вероятно, это самый простой способ. Еще раз спасибо за вашу помощь.
Тим
С экрана Advanced DNS на панели управления 123-reg
- Я начал с того, что нажал кнопку "Сбросить DNS" до настроек по умолчанию 123-reg.
Это дало мне следующее;
Тип записиDNSПриоритетTTLНазначение / Цель
*А 81.xx.xx.xx
@A 81.xx.xx.xx
@MX10 xx0.123-reg.co.uk
@MX20 xx1.123-reg.co.uk
- Затем я добавил эту запись
wwwCNAME www.example.com.s3-website-us-east-1.amazonaws.com
В своем pdf-руководстве по управлению DNS говорится, что "@ record" относится к "вашему домену в чистом виде без субдомена", то есть к голому домену stackru.com
Но здесь не упоминается, что такое "запись", я предполагал, что это будет перехват всех поддоменов, и думал, что это может перехватить запись CNAME, но это не так.