У меня есть статический сайт (mysite.com), размещенный через Netlify. Netlify в настоящее время управляет моим DNS, так что у меня есть такие серверы имен:

  • dns1.p07.nsone.net
  • dns2.p07.nsone.net
  • dns3.p07.nsone.net
  • dns4.p07.nsone.net

У меня на S3 есть ведро с именем dl.mysite.com. Я хочу, чтобы когда кто-то щелкал ссылку, например http://dl.mysite.com/file.pdf, он брал ее из корзины S3.

В моей панели управления для Netlify я могу создать собственный субдомен (dl.mysite.com), и он дает мне указание сделать следующее:

Укажите запись CNAME dl, чтобы obfuscated-url-d6f26e.netlify.com войти в систему в учетную запись вашего поставщика DNS и добавьте запись CNAME для dl, указывающего на obfuscated-url-d6f26e.netlify.com.

Раньше, когда я использовал AWS исключительно для размещения приложения и управления DNS, это было легко сделать, просто создав запись псевдонима в Route53 для поддомена и указав ее на мою корзину.

Как я могу сделать это сейчас, когда Route53 не обрабатывает мой DNS? Можно ли по-прежнему указать этот субдомен на конкретную корзину S3?

5
Ray 14 Мар 2018 в 19:34

2 ответа

Лучший ответ

Отказ от ответственности: я работаю на Netlify.

Netlify предназначен для размещения веб-контента, а не полностью прокси-сервера для сегментов S3. Использование его так, как вы описываете, может работать, но противоречит нашим условиям обслуживания, в которых прямо говорится, что мы намерены размещать веб-сайты. с html-контентом, который могут просматривать люди, а не компьютеры. Если это буквально все, что вы хотите сделать - обслуживать контент из этого ведра S3, то я бы вообще не стал беспокоиться о промежуточном этапе использования Netlify. Это еще одна точка отказа, которая не дает вам много денег, чтобы поставить нас между вашими посетителями и S3. Еще один разумный способ сделать это - предложенный выше @thomas.

Однако, если вы хотите использовать DNS-хостинг Netlify для своего домена, поскольку мы размещаем для вас другие сайты, вы все равно можете использовать наш DNS для настройки имени хоста, которое указывает непосредственно на S3 - здесь нет нарушения условий обслуживания, поскольку мы не ограничивайте использование нашей службы DNS. Многие клиенты заказывают у нас хостинг DNS для доменов, где есть один веб-сайт на netlify и еще десяток где-то еще. Чтобы настроить это, я бы вместо этого установил эту запись как CNAME для имени хоста S3 и обработал любой сертификат SSL на стороне AWS. Это сработает, и если это не так, наша служба технической поддержки будет рада вам помочь.

В третьей ситуации, если вы хотите обслуживать некоторое содержимое на этом имени хоста из S3 (например, PDF-файлы), а затем какое-то другое содержимое (например, html-файлы вашего веб-сайта, которые ссылаются на PDF-файлы), это нормально! Мы будем рады прокси для вашего контента S3. Например, вы можете настроить (обратный) прокси для /files/* на S3 следующим образом в файле /_redirects:

/files/* http://aws-bucket-hostname/:splat 200!

Это говорит: «загрузить все файлы из Netlify EXCEPT / files / *, которые вместо этого должны поступать из S3 с путем, совпадающим с частью после / files / в URL-адресе». В этом случае мы БУДЕМ обрабатывать SSL-сертификат за вас, так как мы завершаем соединение с браузером вместо S3.

Больше документов по этой функциональности здесь:

https://www.netlify.com/docs/redirects/

5
fool 15 Мар 2018 в 23:28

Чтобы использовать статический хостинг на S3 (что позволяет вашей корзине быть доменным именем), вы можете использовать псевдоним только на Route 53.

Однако вы можете использовать CloudFront для обслуживания файлов, используя любое доменное имя по вашему выбору.

Я бы сказал, что у вас есть следующие варианты:

  1. Вернитесь к использованию Route 53
  2. Используйте CloudFront перед своей корзиной S3
  3. Просто используйте ссылку на ведро S3

(Учитывая, сколько браузеров скрывают адрес и что людям все равно, я бы выбрал вариант 3 лично .)

3
Thomas Edwards 14 Мар 2018 в 16:53