Есть домен, допустим domain.co, куплен в GoDaddy, есть node.js приложение в Heroku, разработка ведется локально, потом проверяется на дроплете в Digital Ocean, затем когда все хорошо, деплоится в Heroku.
И захотелось мне, чтобы domain.co смотрел в Heroku, staging.domain.co в Digital Ocean, а domain.dev работал локально, с последним проблем не возникло, а вот с первыми двумя, да.
Никак не получается настроить, подскажите как это реализовать идеологически правильно?
Решения с добавлением A записей IP'шников Heroku не предлагайте, мне кажется это решение совсем неправильное.
Проблема в том, что у Heroku нет какого-то определенного IP, скрипт записывающий логи запроса host domain.herokuapp.com за час работы, собрал 6 разных IP, думаю, что там их еще больше. Сами хероковцы, настаивают на использовании CNAME, но тогда появляется проблема с staging.domain.co, так как ему я могу назначить только A запись со статическим IP и когда я это делаю, почему-то основной домен, начинает ходить по этому же IP.
Да я сам охренел, при запросе dig для основного домена, покзывал тот IP который я прописывал для поддомена, NS'ы теперь digitalocean'овские, до этого были те которые по дефолту предлагал godaddy. В итоге, пришлось все равно жестко прописать IP для heroku, мне это не нравится, но работает.
Ну так надо в днс создать три записи:
domain.co - A-запись с айпишником heroku
staging.domain.co - A-запись с айпишником digitalocean
domain.dev (или уж лучше dev.domain.co) - A-запись с айпишником 127.0.0.1 (или какой там локальный сервер, если это не компьютер разработчика)
У хероку приложения нет айпишника, но всегда есть служебный домен appname.herokuapp.com
Чтобы domain.co смотрел на хероку нужно сделать следующие шаги:
1. heroku domains:add domain.co -a appname
2. Создать CNAME запись для домена domain.co со значением "appname.herokuapp.com"
Более подробно в официальной документации хероку