アプリを実行しているとしましょう
sakana.herokuapp.com
私はドメインwww.fishywebsites.comを所有しています
fishywebsitesのDNSCNAMEをsakana.herokuapp.comを指すように指定した場合、Webサイトを正常にレンダリングするにはそれで十分ではないでしょうか。
何をしていますか
heroku domains:add www.fishywebsites.com
実際に?
アプリを実行しているとしましょう
sakana.herokuapp.com
私はドメインwww.fishywebsites.comを所有しています
fishywebsitesのDNSCNAMEをsakana.herokuapp.comを指すように指定した場合、Webサイトを正常にレンダリングするにはそれで十分ではないでしょうか。
何をしていますか
heroku domains:add www.fishywebsites.com
実際に?
Herokuのルーティングメッシュは、着信HTTPリクエストを受け入れ、dynoグリッド内を移動するときに適切なアプリケーションに送信します。Host:
これを行うには、ブラウザのアドレスバーのドメイン名に対応するHTTPヘッダーに依存します。
*.herokuapp.com
Herokuには、ルーティングメッシュにマップするワイルドカードDNSエントリがあります。このスペース内の任意の名前に接続できます(例: http: //0gtxygq7t0haalc4.herokuapp.com/)。その名前のアプリケーションはありません。ルーティングメッシュに接続します。ルーティングメッシュはHost:
ヘッダーに基づいてルックアップを実行し、このリクエストをルーティングするための賢明な方法がないと判断します。
内訳:ブラウザは完全なURLを確認し、ドメイン名を引き出します。次に、DNSルックアップを実行します。
$ dig 0gtxygq7t0haalc4.herokuapp.com
; <<>> DiG 9.8.3-P1 <<>> 0gtxygq7t0haalc4.herokuapp.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38567
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;0gtxygq7t0haalc4.herokuapp.com. IN A
;; ANSWER SECTION:
0gtxygq7t0haalc4.herokuapp.com. 60 IN A 23.21.103.189
;; Query time: 128 msec
;; SERVER: 2001:470:20::2#53(2001:470:20::2)
;; WHEN: Wed Dec 5 17:04:36 2012
;; MSG SIZE rcvd: 64
これは、ブラウザに23.21.103.189に接続するように指示します。これをプロトコル()とペアリングすると、http
ポート80でそのIPへのTCP接続が確立されます。DNSルックアップには完全に別個のサーバーセットが含まれているため、ルーティングメッシュはそれをどのように見つけたかを認識または気にしません。あなたがそれに接続しているということです。
次に、ブラウザは次のようなものを送信します。
GET / HTTP/1.1
Host: 0gtxygq7t0haalc4.herokuapp.com
...
これは、Herokuルーティングメッシュが必要なサイトを見つけるときです。
にCNAMEエントリを追加するfoo.bar.baz
と*.herokuapp.com
、その名前をルーティングメッシュに接続することに成功します。ただし、heroku domains:add foo.bar.baz
Herokuは、あなたがいるまで、どのアプリケーションがそれらのリクエストを受信する必要があるかを知りません。それは表示Host: foo.bar.baz
され、どのアプリケーションが関与しているかはわかりません。DNSルックアップはHTTPの下のレイヤーで動作し、アプリケーションをルーティングするには両方が必要です。
heroku domains:add www.fishywebsites.com
www.fishywebsites.comに送信されるすべてのリクエストは、アプリケーション(この場合はsakanaアプリケーション)にルーティングする必要があることをherokuに通知します。
残念ながら、www.fishywebsites.comをherokuにポイントするだけでは不十分です。アプリケーションには任意の名前を付けることができ、ドメインはアプリの名前を計算する必要がないこと、そしておそらくherokuがどこを推測するよりも、ユーザー設定に基づいてDNSとルーティングシステムを更新する方が速いことを覚えておいてください。各リクエストをリダイレクトします。
とにかく、ドメインをherokuに追加するのに、1分以上かかることはなく、大したことではありません。