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