Чтобы использовать собственный домен для доступа к бакету:
-
1.
Создайте бакет с именем домена.
-
2.
Настройте бакет в качестве хостинга статических файлов.
-
3.
Добавьте CNAME-запись для вашего домена.
Создание бакета
Для создания бакета следуйте инструкции: Как заказать объектное хранилище S3.
При создании бакета:
- в качестве названия бакета укажите имя вашего домена, например,
static.example.com, - выберите тип доступа к объектам Открыт для всех.
Настройка бакета в качестве хостинга
-
1
Установите и настройте AWS CLI по инструкции: Установка и настройка AWS CLI.
-
2
Введите команду:
aws s3 website s3://<bucket-name>/ \ --index-document index.html \ --error-document error.html
Добавление CNAME-записи
Способ добавления записи зависит от того, какие DNS-серверы используются для вашего домена. Узнать, какие DNS используются для домена, можно с помощью команды:
dig example.com ns +short
Добавьте CNAME-запись в личном кабинете Рег.ру по инструкции: Как добавить новую ресурсную запись. При добавлении записи заполните поля:
- Subdomain — поддомен, кроме @ (для вашего основного домена этот тип записи недоступен);
- Canonical name — домен вида
<bucket_name>.website.regru.cloud.
Добавьте CNAME-запись по инструкции вашего провайдера DNS. Пример ресурсной записи CNAME:
static.example.com CNAME static.example.com.website.regru.cloud
После добавления записи дождитесь обновления зоны домена. Обычно оно занимает 2–4 часа. Если вы предварительно изменили DNS-серверы домена, обновление информации займет до 24 часов.
Затем загрузите файлы сайта через панель управления или AWS CLI. Если все настроено верно:
- при переходе по ссылке вида
http://static.example.comбудет открываться объектindex.html, - объекты в бакете будут открываться по ссылкам вида
http://static.example.com/<object_key>, - при переходе по ссылке с ошибкой 4ХХ (например, при запросе несуществующего
<object_key>) будет открываться объектerror.html.
Обратите внимание
Поддержка TLS для собственных доменов пока недоступна, доступ к бакету пока возможен только по HTTP.
Если домен или поддомен включен в HSTS preload-лист браузеров, браузер принудительно использует HTTPS и блокирует обращения по plain HTTP. В этом случае доступ к S3-бакету через браузер будет невозможен. Перед использованием собственного домена убедитесь, что для него не включен HSTS с флагом preload.
Была ли статья полезна?
Спасибо за оценку. Рады помочь 😊