herokuにルートドメインを設定した時のメモ
概要
herokuではルートドメインの登録をサポートしていません。
もしexample.com
というドメインを取得した場合、www.example.com
とかapp.example.com
のようなサブドメインを登録する必要があります。
どうしても、example.com
でheroku上のアプリを参照したい場合は、別のDNSサービスを利用する
必要があります。
前提
- ドメイン取得済み
- 下記等を参照し、herokuにアプリがデプロイ済み
heroku側にドメインを登録する
heroku domains:add ${your_domain}
DNS登録する
今回はApex Alias
に対応したGEHIRN WEB SERVICEを利用します。
2ドメインまでは無料で利用できます。
詳しいDNSの説明はサービスのブログにスクリーンショット付きで解説されていますので、参照ください。ざっくり、流れは下記です。
2016/10/12現在Gehirnのバージョンについての説明
Gehrinはデザインのみならず料金体系などもリニューアルされています。
Apex Aliasの設定は、Aレコードの編集によって、その機能を代替されているため、当記事当初の内容と少し操作が異なります。
詳しくは以下のブログをご確認ください。
新しくなった Gehirn DNS のエイリアス機能を使う | Gehirn News(ゲヒルンニュース) : https://news.gehirn.jp/dev/717/
- DNSの登録ボタンを押下
- 表示されたDNSホストを取得したドメインサービスに登録する (※1)
- 取得したドメインサービスのDNSにGEHIRNのDNSが登録できたら、再度、ドメイン登録ボタンを押してドメイン登録すると、GEHIRN側でドメインの認証が完了
- GEHIRNのDSNのメニュー画面に登録したドメインが表示
- メニュー画面から登録したドメインを押下して
Apex Alia
を押下 - 作成したherokuのアプリの既存urlを登録。必ずドメインの最後にドット(.)を入れること( ${app_name}.herokuapp.com.)
- しばらく待つ(6時間くらい)
- 登録が完了すると、ルートドメインでherokuアプリで参照できるようになる
※1 .coのドメインを取得したときに、ドメインサービスのDNSに登録するフローが大変だったので下記にまとめる
.coドメインのDNSにGEHIRN WEB SERVICEの認証DNSを登録する
2013年11月に行われたStartup Weekend Tokyoに参加しました。
参加の特典で.co
ドメインが無料でもらえたので、それをGEHIRN WEB SERVICEを利用してルートドメインで参照できるようにしようとしましたが、うまくいかず手こずったので、下記に方法をまとめておきます。
参照
認証用のDNSが登録できない
上記に書いた通り、GEHIRN WEB SERVICEのDNSにドメインを登録しようとすると、そのドメインが
本当にあなたのものなのか、確認するために、ドメインを取得したサービス側のDNSにGEHIRN WEB SERVICEの下記のような認証用DNSを登録するように言われます。
XXXXX.dns-verify.gehirn.ne.jp
しかし、上記認証用DNSだけ、.coドメインサービスのDNSには登録できませんでした。
なぜか、エラーで怒られる。。。
Failed to Modify Domain Nameservers: Nameserver not found at registry
そのため、直接メールにて、エラーで登録出来ない旨を.coドメインサービス側に連絡したら、無事登録してもらえました。
下記その返信です。
That error happens when the name server you are attempting to add doesn't exist in the Registry. All name servers have to be created in the Registry before they can be added to a domain. I've gone ahead and created the name server for you and updated your domain.
これで、GEHIRN WEB SERVICE側の認証が無事通りました。