web-dev-qa-db-ja.com

ネイキッドドメインでのHerokuアプリケーションエラー

ドメインがHerokuアプリを指すように、いくつかのアドバイスに従いました。私が話している投稿は ここここ で見つけることができます。コマンドラインから、カスタムドメインをアプリに追加しました

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

次に、これらの構成をGandiゾーンに追加しました

@ 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からアプリケーションエラーが発生します。

この問題を解決する方法は?

2
Luke

DNSプロバイダーで許可されている場合は、ネイキッドドメイン(「@」)をCNAMEでアプリにエイリアスする必要があります。

@ 300 IN CNAME myname.herokuapp.com.

Cloudflareはこれを許可しますが、明らかに仕様外であるため、すべてのDNSプロバイダーが許可しているわけではありません。 Herokuはそれに依存しています。 Heroku IPをAレコードとして使用することは非推奨であり、問​​題が発生する可能性があります。

1
Aaron Grando

そうしないでください。 DNS仕様により、CNAMEレコードは他のDNSタイプと共存できません。これが、CNAMEが通常ルートドメインで許可されていない理由です。

CNAMEを使用すると、他のDNSレコードが正しく機能しなくなります。ただし、たとえば、ドメインのMXレコードを構成して、そのドメインの電子メールを受信できなくなる可能性があります。

TXTおよびSPFは無視されるため、電子メールを適切に送信することもできません。

この場合の問題を解決する唯一の方法は次のとおりです。

  1. ルートドメインをwwwホスト名にリダイレクトします(ルートドメインのAレコードをリダイレクトサービスにポイントします)
  2. ルートドメインのCNAMEのような構成を可能にするDNSプロバイダーを使用します(Aレコードを動的に解決してルートドメインに割り当てることにより)
  3. AレコードをHerokuアプリ名によって返されるAレコードの1つにポイントします(変更される可能性があるため、お勧めしません)。
2
Simone Carletti