Я разработчик программного обеспечения, и я хочу купить домен, чтобы я мог разместить свой текущие и будущие проекты на. Я провел исследование, но так как я все еще не уверен, правильно ли я понимаю это, я прошу здесь о помощи.
Допустим, я купил домен example.com. Поскольку система DNS является иерархической, теперь мне принадлежат все поддомены example.com, такие как a.example.com, b.example.com и a.b.c.example.com. Итак, для каждого нового проекта, который я хочу развернуть, я смогу выделить домен projectname.example.com.
Чтобы реализовать это право собственности, мне предоставляется доступ к записи NS в реестре домена .com через регистратор, поэтому я могу установить DNS-сервер, ответственный за разрешение моего домена. По умолчанию это будет сервер, который мне предоставил регистратор.
Когда я развертываю приложение в облаке, я получаю URL-адрес, например project1.heroku.com. Чтобы перенаправить трафик, я могу просто создать записи CNAME или ALIAS с project1.example.com на project1.heroku.com
. Но согласно документации Heroku, мне нужно добавить домен к heroku, а затем создать запись CNAME. на URL, который мне будет предоставлен после этого. Почему это так и почему не работает нормальный URL? Или я действительно чего-то не понимаю?
Это очень распространенное заблуждение. CNAME
не выполняет перенаправление HTTP и не создает псевдоним для веб-сервера. Это просто говорит о том, что запись DNS A
может быть найдена в другом месте.
Веб-сервер получает исходное имя хоста в адресной строке браузера только через заголовок Host
. Веб-сервер не имеет никакого соединения с инфраструктурой DNS, т. е. вообще не проверяет записи CNAME
. Следовательно, веб-сервер должен знать имя хоста (т. е. настроенное свойство), чтобы обслуживать правильный контент (виртуальный хост).