ホームページやブログ、Webサービスを運営していると、「複数のドメインを1つのサーバーで使いたい」「サブドメインをいくつも運用したい」といったニーズが出てきます。これを実現するのが DNSのマルチドメイン設定 です。
マルチドメインを使えば、1台のサーバーで複数のWebサイトを独立して公開したり、サブドメインごとに異なるサービスを提供することができ、ビジネスやブログ運営の幅が大きく広がります。
この記事では、マルチドメインとは何か、DNSサーバーの仕組み、ネームサーバー設定の考え方、AレコードやCNAMEレコードの設定例、注意点までを初心者向けにわかりやすく解説します。
途中でつまずきやすい「wwwあり・なし問題」「SSL証明書の注意点」「サーバー側のVirtualHost設定」なども具体的に紹介しますので、これからドメイン運用を強化したい方にも役立つ内容となっています。
マルチドメインとは、1つのサーバーで複数の独立したドメインを利用できる仕組みを指します。たとえば、
など異なるドメイン名を、同じサーバーの中で運用するイメージです。
DNS(Domain Name System)は「ドメイン名をIPアドレスに変換する仕組み」です。
例えば、example.com にユーザーがアクセスすると、DNSがドメインに対応するIPアドレスを返し、そのIPアドレスのサーバーがWebページを表示します。
ブログや企業サイト、サブプロジェクトなど複数サービスを扱う場合は非常に便利です。
マルチドメイン設定で必ず理解しておきたいのが各DNSレコードです。最低限、以下のレコードだけ抑えれば問題なく運用できます。
ドメイン → サーバーのIPアドレス を紐づけるレコード。
最も基本的で、ほぼすべての運用で必要になります。
例:
example.com A 123.456.78.90
別ドメイン(別ホスト名)に名前を委任するレコード。
サブドメインを使うときに便利。
例:
www.example.com CNAME example.com
メールサーバーを指定するレコード。
Webサイトだけなら不要ですが、メールを使うなら設定必須です。
Google Search Console、SSL認証、各種サービスの所有権確認で利用。
マルチドメインを設定する際は、以下のステップで進めると失敗しません。
ドメインごとにサーバーのIPを指定します。
Apacheなら VirtualHost
Nginxなら server ブロック
を使ってディレクトリを分けます。
https対応しないと「保護されていません」と表示されるため、必ず実施。
wwwあり・なしで表示確認。
リダイレクト設定もここで整えます。
この順番を守れば、設定ミスは大幅に減らせます。
ここでは、2つのドメインを1台のサーバーへ割り当てる例を紹介します。
DNSレコードは次のようになります。
main-site.com A 123.45.67.89
www.main-site.com CNAME main-site.com
sub-project.net A 123.45.67.89
www.sub-project.net CNAME sub-project.net
これでDNS側の設定は完了。
次はサーバー側の設定が必要です。
Apacheを使っている場合は、VirtualHostでドメインごとのWebサイトを分離できます。
設定例:
<VirtualHost *:80>
ServerName main-site.com
ServerAlias www.main-site.com
DocumentRoot /var/www/main
</VirtualHost>
<VirtualHost *:80>
ServerName sub-project.net
ServerAlias www.sub-project.net
DocumentRoot /var/www/sub
</VirtualHost>
※ https化する場合は <VirtualHost *:443> にSSL関連の設定を追加します。
Nginxでも同様にドメインごとにserverブロックを分けます。
server {
server_name main-site.com www.main-site.com;
root /var/www/main;
}
server {
server_name sub-project.net www.sub-project.net;
root /var/www/sub;
}
マルチドメイン運用で最も問題が起きやすいのが SSL設定 です。
「このサイトは安全ではありません」
「証明書がドメインと一致しません」
これは、ドメインごとにSSL証明書を発行していない場合に起きます。
Let’s Encryptを使えば無料で何度でも発行できます。
例(Certbot)
sudo certbot --apache -d main-site.com -d www.main-site.com
sudo certbot --apache -d sub-project.net -d www.sub-project.net
*.example.com のようにサブドメインをまとめて扱える証明書。
マルチドメインは自由度が高い反面、設定漏れがあると表示されなかったりSSLエラーが頻発します。
1つずつ丁寧に設定すれば安定運用できます。
SEOのカテゴリーを完全分離したい場合に有効。
会社ごとにサブドメインを発行するケースも多い。
SaaS開発では一般的な構成。
マルチドメインを使うことで、1台のサーバーで複数サイトを効率よく運用できます。
DNSのAレコードやCNAMEの基本、サーバー側のVirtualHostやserverブロックの使い方、SSL設定を理解することで、プロ並みのサイト構築が可能になります。