ITエンジニア日記 ~NO SKILL, NO LIFE~

学んだ技術や、気になることをアウトプットしていきます。プログラミング, インフラ, etc...

バーチャルホスト(virtual host )とは?

今日はバーチャルホストについて。

[目次]

1. バーチャルホスト(virtual host )

1つのサーバーで複数のドメインを運用するための技術のこと。
バーチャルホストを使うと、1つのサーバーに複数の異なるドメイン名が割り当てられます。そのため、外部からはそれぞれ独立したサーバーであるかのようにみえます。
メリットとしては、サーバーの数を減らし運用のコストを下げることや、IPの有効活用ができるなどが挙げられます。
バーチャルホストには大きく分けて 名前ベースバーチャルホスト IPベースバーチャルホスト の2つがあります。

1.1. 名前ベースバーチャルホスト

名前ベースバーチャルホストでは、1つのIPアドレスに複数のドメインを割り当てます。
外部からのアクセスでどのバーチャルホストへ向けたアクセスなのかを指定するには、HTTPの場合は要求メッセージ内のHOSTヘッダで対象のホストを指定します。

【HTTPの要求メッセージ例】

GET / HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ja
Accept-Encoding: ja,en-US;q=0.7,en;q=0.3
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0
Host: www.xxx.zzz               ← アクセス対象のホストを指定
Connection: Keep-Alive

1.2. IPベースバーチャルホスト

IPベースバーチャルホストでは、1つのサーバーに複数のIPアドレスを割り振り、それぞれにドメイン名を設定します。
HTTPの要求メッセージ内のHOSTの指定をしなくてもバーチャルホストの区別ができますが、運用したいホストの数だけIPアドレスが必要になります。

2. まとめ

バーチャルホストについてまとめてみました。
レンタルサーバーや小規模サイトなどで使用されいるらしく、意外と身近な技術でした。