Я хочу добиться такого поведения на DNS-серверах IIS 10 и GoDaddy.
У меня есть три сервера, обрабатывающих три приложения, первые два работают нормально, но возникают проблемы с третьим:
www.example.com
и non-www.example.com
трафик идет на один сервер.api.example.com
идет к другому. s*.example.com
переходит на третий сервер (только поддомены, начинающиеся с буквы S
)Учитывая, что завтра у меня может быть api2.mydomain.com
и т.д..
Спасибо!
Подстановочные знаки DNS являются двоичными: это все или ничего, вы не можете сопоставить только некоторую часть метки, например s*.example.com
. Это часть протокола, поэтому он не будет работать с любым программным обеспечением, которое вы используете [1]
Видеть RFC4592 и его раздел 2.1.1:
«Доменное имя с подстановочными знаками» определяется тем, что его начальная (то есть самая левая или наименее значимая) метка в двоичном формате:
0000 0001 0010 1010 (binary) = 0x01 0x2a (hexadecimal)
Первый октет - это нормальный тип и длина метки для метки длиной 1 октет, а второй октет - это представление ASCII [RFC 20] для символа '*'.
Поэтому, если вы хотите сделать что-то подобное, вам нужно настроить подстановочный знак, а затем обрабатывать все запросы на уровне приложения на вашем веб-сервере.
Помните, что подстановочные знаки, какими бы привлекательными они ни казались, могут создавать сложные проблемы, особенно с записями CNAME. Zonefiles обычно представляют собой текстовые файлы, поэтому их создание легко автоматизировать и вставлять в них любое количество записей вместо использования подстановочных знаков.
[1]: за исключением, конечно, очень специфичного сервера, где вы можете подключить конкретный сервер, который будет действовать на этикетке так, как вам нужно.