Настройка 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