Я уже добавил собственный домен в свое приложение Heroku, и он работает с www.domain.com
.
Мне нужно знать, как настроить домен без www
разрешения приложения.
Вот мои текущие настройки DNS:
$TTL 86400
@ IN SOA ns1.first-ns.de. postmaster.robot.first-ns.de. (
2013041500 ; serial
14400 ; refresh
1800 ; retry
604800 ; expire
86400 ) ; minimum
@ IN NS robotns3.second-ns.com.
@ IN NS robotns2.second-ns.de.
@ IN NS ns1.first-ns.de.
@ IN A 88.198.38.XXX
localhost IN A 127.0.0.1
mail IN A 88.198.38.XXX
ftp IN CNAME www
imap IN CNAME www
loopback IN CNAME localhost
pop IN CNAME www
relay IN CNAME www
smtp IN CNAME www
www IN CNAME appname.herokuapp.com.
@ IN MX 10 mail
Какие настройки следует использовать, чтобы оба example.com
и www.example.com
правильно указывали на мое приложение Heroku?
Ответы:
(Примечание: корневые, базовые и верхние домены - это одно и то же. Используются взаимозаменяемо для google-foo.)
Традиционно, чтобы указать свой домен вершины, вы должны использовать запись A, указывающую на IP-адрес вашего сервера. Это решение не масштабируется и не является жизнеспособным для облачной платформы, такой как Heroku, где несколько и часто меняющиеся серверные части отвечают за ответы на запросы.
Для поддоменов (например,
www.example.com
) вы можете использовать записи CNAME, указывающие наyour-app-name.herokuapp.com
. С этого момента Heroku управляет динамическими записями A,your-app-name.herokuapp.com
чтобы они всегда были актуальными. К сожалению, спецификация DNS не разрешает записи CNAME на вершине зоны (базовом домене). (Например, записи MX будут прерваны, поскольку CNAME сначала будет следовать к своей цели.)Возвращаясь к корневым доменам, простое и универсальное решение - вообще не использовать их. В качестве запасной меры некоторые поставщики DNS предлагают настроить для вас перенаправление HTTP. В этом случае настройте его так, чтобы
example.com
это HTTP-перенаправление наwww.example.com
.Некоторые поставщики DNS предложили собственные решения, которые позволяют вести себя как CNAME на вершине зоны. Насколько мне известно, у нас есть ALIAS запись DNSimple в и ANAME запись DNS Made Easy в ; оба ведут себя одинаково.
Используя их, вы можете настроить свои записи как (используя нотацию файловых зон, даже если вы, вероятно, сделаете это в их пользовательском веб-интерфейсе):
Помните,
@
что это сокращение для корневого домена (example.com
). Также учтите, что конечные точки важны как в файлах зон, так и в некоторых пользовательских веб-интерфейсах.Смотрите также:
Примечания:
Amazon Route 53 также имеет тип записи ALIAS, но он несколько ограничен, поскольку работает только для указания точки в AWS. На данный момент я бы не рекомендовал использовать это для настройки Heroku.
Некоторые люди путают поставщиков DNS с регистраторами доменных имен, поскольку компании, предлагающие и то, и другое, частично совпадают. Имейте в виду, что для переключения вашего DNS-сервера на одного из вышеупомянутых провайдеров вам нужно только обновить записи своего сервера имен с помощью вашего текущего регистратора домена. Переносить регистрацию домена не нужно.
источник
Чтобы указать свой верхний / корневой / голый домен на приложение, размещенное на Heroku, вам понадобится DNS-провайдер, который поддерживает записи, подобные CNAME (часто называемые записями ALIAS или ANAME). В настоящее время Heroku рекомендует :
Какой бы из них вы ни выбрали, ваша запись будет выглядеть следующим образом:
Запись:
ALIAS
илиANAME
Имя: пусто или
@
Цель:
example.com.herokudns.com.
Это все, что вам нужно.
Однако для SEO нецелесообразно разрешать и версию с www, и версию без www. Один должен указывать на другой как на канонический URL. Как вы решите это сделать, зависит от того, используете ли вы HTTPS или нет. А если нет, то вам, вероятно, следует поступить так, как Heroku теперь автоматически и бесплатно обрабатывает SSL-сертификаты для всех приложений, работающих на платных динамометрических станциях.
Если вы не используете HTTPS, вы можете просто создать 301 Redirect запись с большинством провайдеров DNS , указывающими имя
www
вhttp://example.com
.Если будут с помощью HTTPS, вы , скорее всего , нужно обрабатывать перенаправление на уровне приложения. Если вы хотите знать, почему, ознакомьтесь с этими короткими и длинными объяснениями, но в основном, поскольку ваш DNS-провайдер или другая служба переадресации URL-адресов не имеет и не должна иметь вашего сертификата SSL и закрытого ключа, они не могут отвечать на HTTPS. запросы для вашего домена.
Чтобы обрабатывать перенаправления на уровне приложения, вам необходимо:
heroku domains:add example.com
иheroku domains:add www.example.com
)www
указывающим наwww.example.com.herokudns.com.
SECURE_SSL_REDIRECT
значениеTrue
)Проверьте этот пост от DNSimple больше.
источник
Сейчас я использую Google Apps (для электронной почты) и Heroku в качестве веб-сервера. Я использую функцию постоянного перенаправления Google Apps 301 для перенаправления голого домена на WWW.your_domain.com
Вы можете найти пошаговые инструкции здесь https://stackoverflow.com/a/20115583/1440255
источник
Вам не разрешено иметь запись CNAME для домена, поскольку CNAME - это функция псевдонима, которая охватывает все типы данных (независимо от того, ищет ли клиент записи MX, NS или SOA). CNAME также всегда ссылаются на новое имя, а не на IP-адрес, поэтому на самом деле в одной строке есть две ошибки.
Изменение этого CNAME на запись A должно заставить его работать, при условии, что используемый вами ip-адрес является правильным для вашего приложения Heroku.
Единственный правильный способ в DNS заставить простое
domain.com
имя работать в браузере - это указать домену на IP-адрес с записью A.источник
host app-name.herokuapp.com
результаты динамичны. Если вы их жестко закодируете, ваше приложение в конечном итоге остановится. См. Рекомендуемые решения ANAME / CNAME в другом комментарии.