複数のサーバーにルートドメインとサブドメインを割り当てる

ルートドメインとサブドメインを別々のレンタルサーバーに割り当てる必要が出てきた。

なんとなく設定しただけでは、ルートドメインのサイトあるいはサブドメインのサイトのページが表示できなくなってしまった。

いろいろ試行錯誤をし、その解決策を見つけたのでメモしておく。

【1】ネームサーバーの設定

ドメインレジストラのネームサーバーの設定は以下の2つの方法がある。

i ) レンタルサーバー指定のものを使う。
ii) ドメインレジストラ独自のものを使う。

複数のレンタルサーバーを使ってドメインを割り振る場合、i ) の方法だとネームサーバーが混在し、以下の DNS 設定チェックのサイトでも「警告」が出るし、実際にサイトも繋がらなくなるようだ。

DNSの設定チェック
https://dnscheck.jp/

なので ii) を設定したほうがよい。

【レコードの設定】

ドメインレジストラに設定するサブドメインのレコードは A レコードを使うか、CNAME レコードを使うかの2種類がある。

ルートドメインが mydomain.com 、サブドメインが sub.mydomai.com の場合以下のようになる。

i )
@ A 3600 レンタルサーバーの IP アドレス
sub A 3600 レンタルサーバーの IP アドレス

ii )
@ A 3600 レンタルサーバーの IP アドレス
sub CNAME 3600 mydomain.com

表記方法はドメインレジストラによって異なる。Freenom ではルートドメインは @ ではなく空欄にするし、Google Domains では 3600(秒)ではなく 1h(1時間)と表記する。

ii) の方法はルートドメインとサブドメインが同一のレンタルサーバーの場合のみ可能な書き方だ。だから i ) の書き方をする。

参考:
Freenomで独自ドメイン取得後のDNS設定 XREA編 | 50歳から始めるWordPress(ワードプレス)
https://wp.hitsug.net/freenom-dns-xrea

はてなブログの独自ドメイン設定が想像以上にめんどくさかったので、まとめておく – よーじ通信
http://www.youji0511.com/entry/2016/11/13/174121

How do I create a subdomain? – Knowledgebase – Freenom
https://my.freenom.com/knowledgebase.php?action=displayarticle&id=45

How to setup A, MX, CNAME or other records for a domain name – Knowledgebase – Freenom
https://my.freenom.com/knowledgebase.php?action=displayarticle&id=4

dns – How to create a subdomain at freenom.com? – Stack Overflow
https://stackoverflow.com/questions/52810608/how-to-create-a-subdomain-at-freenom-com

【3】SSL の設定をした時

複数のレンタルサーバーにルートドメインとサブドメインを割り振れば、SSL 設定は別個に行う。それでもルートドメインの SSL 設定がサブドメインにまで影響することがわかった。

そこでルートドメインの .htaccess に以下を追記する。(この Strict-Transport-Security は通常 includeSubDomains と追記するけれど、これを書くとサブドメインに影響が出てしまう。)

1<IfModule mod_headers.c>
2Header set Strict-Transport-Security "max-age=10886400"
3</IfModule>

参考:
http のリクエストが勝手に https にリダイレクトされるときは Strict-Transport-Security を疑おう – べにやまぶろぐ
http://beniyama.hatenablog.jp/entry/2014/11/08/175925

HSTSとは? 推奨される理由とプリロードリスト登録方法 – ブロギングライフ
https://www.blogging-life.com/hsts-preload/

常時SSL化(https)するときのHSTS設定の方法と注意点 | ウェブマスターがウェブのことを書いたら
https://tuono034s.com/web-entry/2310/