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