Подстановочный знак CNAME и подстановочный знак записи MX

Мы находимся в процессе перехода с Engine Yard на Heorku. Проблема заключается в том, что Heroku использует записи CNAME.

Я хотел бы настроить следующие записи на Route53 (переключение на другого провайдера DNS — это крайняя мера, я бы предпочел оставить все на AWS, поскольку у нас есть много других сервисов, которые мы используем там).

CNAME www.example.com corporate-site.wpengine.com
CNAME *.example.com   example.herokuapp.com
MX    *.example.com   1 mailgun.org
MX      example.com   1 aspmx.l.google.com

Идея состоит в том, что кто-то может пойти на demo.example.com и получить приложение heroku. Они также могут отправить электронное письмо [email protected], и оно попадет в обычный почтовый ящик Gmail. Но когда они отправляют электронное письмо на [email protected], электронное письмо обрабатывается MailGun. Например, Craiglist использует этот подход для ответов на сообщения.

Приведенная выше настройка DNS недействительна для Route53. Это связано с тем, что имена записей CNAME должны быть уникальными для всех типов записей. Однако это не проблема с записями A, как это было настроено раньше.

Обратите внимание, что простая переадресация 301 здесь не годится. Мы хотим, чтобы demo.example.com всегда указывало на demo.example.com. Каждый субдомен используется приложением heroku для определения учетной записи для загрузки (или, если вы думаете о примере с Craiglist, отдельном географическом регионе, мы не хотим перенаправляться только в один регион и иметь много регионов, которые мы создаем динамически).

Каков рекомендуемый способ решения этой проблемы?


person Michael Yagudaev    schedule 12.03.2014    source источник
comment
Еще немного покопавшись, я обнаружил, что Route53 поддерживает записи псевдонимов, но не за пределами своей собственной сети. stackoverflow.com/questions/21295614/heroku-ssl-with-route53< /а>. Все еще интересно, есть ли решение этой проблемы, не связанное с переключением.   -  person Michael Yagudaev    schedule 13.03.2014
comment
Даже если вы найдете провайдера, который позволяет вам иметь эту конфигурацию, вы должны знать, что она в корне несовместима с тем, как должна работать DNS. CNAME по определению означает, что для конкретного хоста не должно быть других записей. Правильная запись MX для того, кто пытается отправить вам электронное письмо, — это запись MX target CNAME (то есть MX хоста, на который указывает запись CNAME). , это не то, что вы хотите. Однако на самом деле реализации различаются, поэтому доставляемость электронной почты может варьироваться в зависимости от отправителя.   -  person Michael - sqlbot    schedule 14.03.2014


Ответы (2)


Я обнаружил, что Route53 поддерживает записи псевдонимов, но не за пределами своей сети.

Обходной путь здесь:

https://devcenter.heroku.com/articles/route-53#naked-root-domain

В принципе:

  1. Создайте корзину S3 с именем: yourdomain.com и настройте перенаправление на www.yourdomain.com.
  2. На Route 53 создайте псевдоним записи A, указывающий на вашу корзину для Naked/root домена yourdomain.com.
  3. Наконец, создайте запись CNAME для www.yourdomain.com, чтобы она указывала на yourapp.herokuapp.com.

Это должно сработать.

person Rico    schedule 13.03.2014
comment
Но это дает мне перенаправление 301 на www, чего я не хочу делать. Я хочу остаться на demo.example.com и сделать перенаправление на уровне DNS. Возможно, я недостаточно подчеркнул эту часть в вопросе, я обновлю ее. - person Michael Yagudaev; 13.03.2014
comment
Тогда с Route 53 ничего не поделаешь. Воспользуйтесь другим сервисом, который рекомендует Heroku. - person Rico; 13.03.2014
comment
Спасибо, Рико, это был и мой вывод. Я попробую один из других сервисов завтра и вернусь с ответом. Служба поддержки Heroku рекомендовала использовать DNSMadeEasy, поэтому мы попробуем это. - person Michael Yagudaev; 13.03.2014

После разговора со службой поддержки Heroku, поддержкой Mailgun и многими из вас. Стало очевидно, что это невозможно сделать с помощью Route53.

Для этого вам нужно либо использовать запись ALIAS, либо запись ANAME. Route53 поддерживает псевдонимы только для конечных точек внутри вашей собственной учетной записи AWS. Поэтому с их сервисом пока не получается.

Мы переключились на DNSMadeEasy, рекомендованный Heroku, и у нас очень хорошая производительность. Я нахожу интерфейс очень неинтуитивным, но вам нужно сделать это только один раз. Все, что мне нужно было сделать, это создать запись с подстановочным знаком ANAME, указывающую на heroku, и все остальное работало нормально.

Я рекомендую вам оформить заказ DNSimple, у них отличный интерфейс, и мне нравится их сервис. Они не так популярны, как DNSMadeSimple, но, безусловно, более удобны в использовании. Надеюсь, когда-нибудь воспользуюсь их услугами.

person Michael Yagudaev    schedule 15.03.2014
comment
В любом случае Mauilgun не поддерживает добавление домена с подстановочными знаками, так что это будет тупик. - person istepaniuk; 07.08.2019