スポンサーリンク

バーチャルホストのIPベースと名前ベースの違い

こんにちは、ウェブラバーです。

ドメインを複数とるのはお金かかるしいやだなーと思いました。

サブドメインを使えばお金も1ドメイン分でいいし、お金もかからないだろうと思ったので、
サブドメインを使えるようにしました。

Apacheには「バーチャルホスト」という機能があります。

・ApacheにVirtualHostの設定をする
・ドメイン管理サービスでサブドメインを設定する

バーチャルホストにはIPベースと名前ベースの2つがある。

名前ベースと IP ベースのバーチャルホストの比較

IP ベースのバーチャルホスト

IPベースバーチャルホストは、利用するドメイン名ごとにIPアドレスを用意し、1つのサーバコンピュータに複数のIPアドレスを割り当てる。

ですから、それぞれのホストに個々に IP アドレスが必要になります。これに対して名前ベースのバーチャルホストでは、 クライアントが HTTP ヘッダの一部としてホスト名を告げる、 ということに依存します。この技術で同一 IP アドレスを異なる多数のホストで共有しています。

名前ベースのバーチャルホスト

ベースバーチャルホストは、利用するドメイン名すべてに同じIPアドレスを使用し、1つのサーバコンピュータに必要なIPアドレスが1つで済む。
クライアントが HTTP ヘッダの一部としてホスト名を告げる、 ということに依存します。この技術で同一 IP アドレスを異なる多数のホストで共有しています。ネームベースだとホスト名とそれに対応するIPアドレスをDNSで設定すれば複数のIPアドレスが要らない。
一つの IP アドレスでいくつかの名前ベースの ウェブサイトを実行する
、DNS でマシンに 複数の名前 (CNAME) が指定されています。

名前ベースのApacheのVirtualHost設定方法

このマシンで www.example.com と www.example.org のためのウェブサーバを実行させたいとします。

# Ensure that Apache listens on port 80
Listen 80

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot /www/example1
ServerName www.example.com

# Other directives here

</VirtualHost>

<VirtualHost *:80>
DocumentRoot /www/example2
ServerName www.example.org

# Other directives here

</VirtualHost>

IP アドレスベースの バーチャルホストの設定方法

ーバには二つ IP アドレスがついています。一つ目 (172.20.30.40) では主サーバ server.domain.com を扱い、もう一方 (172.20.30.50) では二つかそれ以上の数の バーチャルホストを扱います。

Listen 80

# This is the “main” server running on 172.20.30.40
ServerName server.domain.com
DocumentRoot /www/mainserver

# This is the other address
NameVirtualHost 172.20.30.50

<VirtualHost 172.20.30.50>
DocumentRoot /www/example1
ServerName www.example.com

# Other directives here …

</VirtualHost>

<VirtualHost 172.20.30.50>
DocumentRoot /www/example2
ServerName www.example.org

# Other directives here …

</VirtualHost>

172.20.30.50 以外のアドレスへのリクエストは主サーバ が扱います。172.20.30.50 への、未知のホスト名または Host: ヘッダなしのリクエストは www.example.com が受付ます。

SSLサイトの場合、SSL証明書を用意しなければなりません。

以下の3パタンがありそうです。

A) ワイルドカード証明書を利用
サブドメインが共通の、複数サイトを立ち上げる場合に、1つの証明書でカバーできる。
例えば、
aaa.example.com
bbb.example.com

B) マルチドメイン証明書を利用
ドメインが全く異なる、複数サイトを立ち上げる場合でも、1つの証明書でカバーできる。

C) シングルドメイン証明書を必要サイト数+Apache SNI機能を利用
サイトの数だけ証明書を発行し、設定する。
しかしそれだけだと、HTTPヘッダは暗号化されてしまいバーチャルホスト機能が有効にならないので、それを回避するために用意されているApache SNI機能を利用する。

(Visited 33 times, 2 visits today)
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク