1. ホーム
  2. heroku

[解決済み] Herokuアプリを指すapexドメイン(wwwなし)のDNSを設定するにはどうすればよいですか?

2023-01-12 15:22:02

質問

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.comwww.example.com は私のHerokuアプリを正しく指すのでしょうか?

どのように解決するのですか?

(注:ルート、ベース、エイペックスドメインはすべて同じものです。google-fooのために互換的に使用)。

伝統的に、頂点ドメインを指定するために、サーバーのIPを指すAレコードを使用することになります。このソリューションはスケールしませんし、Herokuのような、複数のバックエンドがリクエストに応答する責任を負い、頻繁に変更されるクラウドプラットフォームでは実行できません。

サブドメイン(たとえば www.example.com のような) サブドメインでは、CNAME レコードを使用して your-app-name.herokuapp.com . ここから先は、Heroku が動的な A レコードを管理します。 your-app-name.herokuapp.com の後ろにある動的なAレコードを管理し、常に最新の状態になるようにします。残念ながら、DNSの仕様上、ゾーンの頂点(ベースドメイン)にはCNAMEレコードを置くことができません。(例えば、MXレコードはCNAMEが先にターゲットに続いてしまうため、壊れてしまいます)。

ルートドメインに戻ると、単純で一般的な解決策は、それらをまったく使用しないことです。代替措置として、一部の DNS プロバイダーは、HTTP リダイレクトをセットアップすることを提供しています。その場合、次のように設定します。 example.com への HTTP リダイレクトを設定します。 www.example.com .

いくつかのDNSプロバイダーは、ゾーン頂点でCNAMEのような動作を可能にするカスタムソリューションを打ち出しています。私の知る限りでは DNSimpleのALIASレコード DNSMadeEasyのANAMEレコード は、どちらも同じような動作をします。

これらを使って、レコードを次のように設定することができます (ゾーンファイル表記法を使用します。これはおそらくウェブユーザーインターフェイスで行うことになるでしょう)。

@   IN ALIAS your-app-name.herokuapp.com.
www IN CNAME your-app-name.herokuapp.com.

記憶する @ は、ルートドメイン ( example.com ). また、末尾のドットは、ゾーンファイルやいくつかのWebユーザーインターフェースの両方で重要であることに留意してください。

こちらもご覧ください。

備考

  • AmazonのRoute 53にもALIASレコードタイプがありますが、AWS内のポイントにしか使えないという点で、やや制限されています。現時点では、Herokuのセットアップにこれを使用することはお勧めしません。

  • DNSプロバイダーとドメイン名レジストラを混同している人がいますが、これは、両方を提供している会社が少し重複しているためです。DNS を前述のプロバイダーの 1 つに切り替えるには、現在のドメイン レジストラでネーム サーバー レコードを更新するだけでよいことに留意してください。ドメイン登録を転送する必要はありません。