2013-05-18 2 views
11

У меня есть домен, example.com, который я хочу использовать для моего rails-приложения, которое находится на example.herokuapp.com, и я довольно смущен, как это сделать.Пользовательский корневой домен на Heroku

Heroku says

«апекс домены зоны (так называемый "голый", "голый" или "корень" домены), например, example.com, используя обычные DNS A-запись не поддерживаются Heroku «. И затем они продолжают объяснять обходные пути (используя ALIAS или ANAME).

Я потратил хороший час на изучение предмета (здесь, на SO и в другом месте), но до сих пор не обдумывал это.

Есть ли альтернативные способы или объяснения того, как это сделать для «манекена»?

ответ

25

Я возьму на себя удар, поскольку это частый вопрос.

Итак, предположим, что у вас есть домен example.com, и вы хотите использовать www.example.com для размещения своего сайта. В традиционном хостинге вы, вероятно, имеете виртуальный сервер, которому был назначен IP-адрес, в этом случае вы бы использовали запись хоста, иначе известную как запись A в панелях управления DNS, чтобы сопоставить www.example.com с IP-адресом , В этом случае, поскольку теперь вы установили www.example.com на фиксированный IP-адрес, если этот IP-адрес когда-либо изменился, вам нужно будет обновить свой DNS самостоятельно.

Кроме того, при традиционном хостинге вы можете установить example.com на тот же IP-адрес, чтобы www.example.com и example.com работали в голых доменах.

Хорошо, так что это запись CNAME. Запись CNAME, а не сопоставление с IP-адресом, отображает запись в другую запись DNS. Итак, www.example CNAME'd to example.herokuapp.com означает, что Heroku может и может перемещаться туда, где example.herokuapp.com указывает, но вам не нужно ничего обновлять, поскольку вы используете запись CNAME, а Heroku - где указывается example.herokuapp.com (который может и может быть другим CNAME или IP-адресом). Проблема с записями CNAME заключается в том, что они НЕ МОГУТ указывать на IP-адрес, что отлично подходит для www.example.com, но проблема с example.com. Ранее Heroku публиковал IP-адреса для голых доменов, но возникали проблемы, когда они подвергались DDOS-атакам и не могли заменить эти IP-адреса новыми, поскольку они были опубликованы IP-адресами. Для нового региона ЕС Heroku НЕ публикует IP-адреса для использования с голыми доменами.

Некоторые поставщики DNS (DNSsimple, которых я знаю один) сделали, добавили свои собственные записи ALIAS на свои DNS-серверы, чтобы вы могли использовать CNAME с обнаженными доменами, так что как www.example.com, так и example.com будут работать как теперь поддерживаемый Heroku. Если поставщик DNS не поддерживает записи ALIAS, стоит переместить домен поставщику DNS, который его поддерживает. DNSsimple также поддерживает перенаправление записей, поэтому вы можете перенаправить на www.example.com на example.com на уровне провайдера DNS, а не на свой прикладной уровень.

+0

Mediatemple не вызывает это ничего особенного, просто выберите CNAME для www. и корневые записи. –

+1

Если вы используете CNAME для корневого домена в MediaTemple, записи MX в корневом домене больше не будут работать - другими словами, вы не получите никаких писем. –

-3

Если вы посмотрите на спецификацию записей DNS, вы не найдете такой записи, как ANAME.

Лучший способ решить эту проблему: Сделать запись CNAME для субдомена www для вашего приложения heroku и запись CNAME для корневого домена в поддомену www.

  • www.domain.com. 3600 В CNAME app.herokuapp.com.
  • @ 3600 В CNAME www.domain.com.

P.S. Она работает, и не заставит вас тратить деньги на мистических DNS записей

3

нашел это: http://blog.cloudflare.com/zone-apex-naked-domain-root-domain-cname-supp

CloudFlare предоставляет целую кучу других преимуществ, а также. Я использую их для всех своих приложений Heroku, и я очень рад быть честным.

Они предоставляют большую ценность бесплатно из моего опыта с ними до сих пор.

+0

Стоит добавить, что CloudFlare теперь поддерживает сглаживание CNAME, чтобы представить CNAME как запись A. https://support.cloudflare.com/hc/en-us/articles/200169056-CNAME-Flattening-RFC-compliant-support-for-CNAME-at-the-root – Simone

Смежные вопросы