Настройка DNS: CNAME против подстановочного знака для SaaS

Так что я новичок в том, чтобы на самом деле заботиться о том, как на самом деле работает DNS, а не подключать что-то и устранять неполадки. У меня есть приложение, которое отображает различную информацию в зависимости от того, с какого домена пользователь посещает. Тем не менее, я не совсем уверен, как это работает с моей стороны.

В моей голове есть два возможных решения: 1. Мой DNS создает новое CNAME для каждого экземпляра 2. Я сохраняю DNS простым с подстановочным знаком *.mysite.com

Возможны ли оба эти способа?

  • Возможны ли оба эти способа?
  • Что касается варианта 2, смогу ли я определить, из какого CNAME пришел пользователь, чтобы я мог отображать правильную информацию?
  • Если они оба выполнимы, какой из них будет лучше?

Мой стек сосредоточен на AWS, поэтому я использую Route 53 и буду использовать их API, если я выберу 1-й вариант.

1 ответ

Решение

Я собираюсь предположить, что это для веб-приложения, и да, оба метода будут работать.

Допустим, вы используете CNAMES:

sitea.domain.com  CNAME  server.domain.com
siteb.domain.com  CNAME  server.domain.com
server.domain.com  A  1.2.3.4

Когда вы вводите sitea.domain.com в веб-браузере ваш DNS-преобразователь попытается получить IP-адрес, который на основе CNAME вернется как 1.2.3.4, Браузер подключится к 1.2.3.4 и попытаться получить сайт sitea.domain.com,

На веб-сервере вы можете настроить разные виртуальные хосты для каждого домена или, возможно, более подходящие в вашем случае, иметь один веб-сайт, который обрабатывает все запросы и использовать HTTP_HOST переменная окружения, чтобы определить, какое имя хоста ввел пользователь, и из этого отобразить соответствующую информацию.

Подстановочные знаки, вероятно, облегчат ваше приложение, так как вам не нужно будет добавлять больше записей DNS каждый раз, когда вы хотите новое имя хоста. (Вы также можете сделать подстановочный знак A-записью, указывающей непосредственно на IP, но это не имеет большого значения):

*.domain.com A 1.2.3.4

или же

server.domain.com  A  1.2.3.4
*.domain.com  CNAME  server.domain.com

Это будет работать почти так же, как пользователь xyz.domain.com в их веб-браузере это разрешается 1.2.3.4они подключаются к 1.2.3.4 и запросить веб-сайт для xyz.domain.com

Другие вопросы по тегам