Ошибка приложения Heroku на голом домене

Ошибка приложения Heroku на голом домене

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

$ heroku domains:add www.myapp.com
$ heroku domains:add myapp.com

и затем я добавил эти настройки в мои зоны Ганди

@ 300 IN A 174.129.212.2
@ 300 IN A 75.101.145.87
@ 300 IN A 75.101.163.44
imap 300 IN CNAME access.mail.gandi.net.
pop 300 IN CNAME access.mail.gandi.net.
smtp 300 IN CNAME relay.mail.gandi.net.
webmail 300 IN CNAME agent.mail.gandi.net.
www 300 IN CNAME myapp.herokuapp.com.
@ 300 IN MX 50 fb.mail.gandi.net.
@ 300 IN MX 10 spool.mail.gandi.net.

Все отлично работает наhttp://www.myapp.com, но на голом доменеhttp://myapp.comЯ получаюОшибка приложенияот Heroku.

Как решить эту проблему?

решение1

Если ваш DNS-провайдер позволяет, вам следует присвоить псевдоним чистому домену ('@') с CNAME для вашего приложения.

@ 300 IN CNAME myname.herokuapp.com.

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

решение2

Не делай этого.Согласно спецификациям DNS, запись CNAME не может сосуществовать с каким-либо другим типом DNS, поэтому CNAME обычно не допускается для корневого домена.

Использование CNAME помешает нормальной работе любой другой записи DNS, исключив, например, возможность настройки записей MX для вашего домена и, таким образом, лишив вас возможности получать электронную почту для этого домена.

Вы также не сможете нормально отправлять электронные письма, поскольку TXT и SPF будут игнорироваться.

Единственный способ решить проблему в этом случае:

  1. Перенаправить корневой домен на имя хоста www (указав запись A корневого домена на службу перенаправления)
  2. Используйте DNS-провайдера, который допускает конфигурацию типа CNAME для корневого домена (путем динамического разрешения и назначения записей A вашему корневому домену)
  3. Укажите в качестве записи A одну из записей A, возвращаемых именем вашего приложения Heroku (не рекомендуется, так как они могут измениться).

Связанный контент