バーチャルホスト
【英】virtual host
バーチャルホストとは、1台のサーバーを複数のサーバーとして利用する技術のことである。
バーチャルホストには、1つのサーバーに複数の異なるIPアドレスを割り当てる「IPベース方式」と、1つのIPアドレスに対して複数のドメインを割り当てる「ネームベース方式」がある。
IPベース方式は、複数のLANカードを用意したり、バーチャルインターフェース(VIF)で実現したりする手法であり、ネームベース方式に比べると比較的構築に手間がかかるとされている。そのため、バーチャルホストを実現する手段としては、ネームベース方式によるものが多い。
バーチャルホストでは、1台のサーバーを複数のサーバーに見立てることができ、複数のサービスごとにサーバーを用意する必要がないため、サーバーのホスティング料金や構築コストなどが抑えられるというメリットがある。
参照リンク
Apache バーチャルホスト説明書 - (The Apache Software Foundation)
バーチャルホスト
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/01/18 09:44 UTC 版)
バーチャルホスト (Virtual Host) とは1つのサーバで複数のドメインを運用する技術のことで、Webサーバ、メールサーバなどで利用される。
- 1 バーチャルホストとは
- 2 バーチャルホストの概要
- 3 代表的なサーバソフトウェア
バーチャルホスト
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/09 06:55 UTC 版)
「Transport Layer Security」の記事における「バーチャルホスト」の解説
TLSは、TCP/IPネットワークでホスト名ベースのバーチャルホストを構成する際に問題となる。TCP/IPでは通信を開始する前にホスト名を解決し、実際にはIPアドレスとポート番号で接続先を識別している。このためTLSのネゴシエーションの時点では、バーチャルホストのうちどのホスト名を期待しているのか判断できず、ホスト名ごとに異なるサーバー証明書を使い分けることができない。 TLSの拡張機能を定義するRFC 6066では、ネゴシエーション時にホスト名を伝える手段としてServer Name Indication (SNI) を規定している。用例としては、HTTPの最新バージョンであるHTTP/2においてTLSを利用する際はSNIの利用が必須とされている。 一方、証明書を使い分けず、1つの証明書を複数のバーチャルホストで使い回す方式も広く利用されている。X.509証明書のフォーマットについて記述したRFC5280では、発行先ホスト名を保持するsubjectAltNameはひとつの証明書に複数のエントリを作成できると規定している。これを利用して、ホストに収容されたすべてのバーチャルホストに対応したsubjectAltNameを保持する証明書をクライアントに提示すれば良い。 また、発行先ホスト名にワイルドカードを使う方法も考えられる。HTTP over SSL/TLS (HTTPS) を定義するRFC 2818は、ワイルドカードの適用について記述している。バーチャルホストの対象が、ひとつのドメイン名の中のホストであれば、この方法で対応できる場合もある。 どの方法も実装によって対応状況にバラつきがあり、環境によっては使えない可能性がある。なおIPアドレスベースのバーチャルホストであれば、ネゴシエーションの時点で確実にどのバーチャルホストを期待しているか判断できるので、問題なく証明書を使い分けることができる。
※この「バーチャルホスト」の解説は、「Transport Layer Security」の解説の一部です。
「バーチャルホスト」を含む「Transport Layer Security」の記事については、「Transport Layer Security」の概要を参照ください。
バーチャルホスト
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/25 14:40 UTC 版)
「Fully Qualified Domain Name」の記事における「バーチャルホスト」の解説
詳細は「バーチャルホスト」を参照 バーチャルホストとは、一つのホストを複数のFQDNに対応付ける技術である。システムを構成するサーバの台数が少ない場合にホストを増やしたように見せかけることができることから、将来的にはホストを増設することを視野に入れた上で初期投資を少なくする手段としても多用されている。例えるなら、社長が一人で営業と経理と人事をこなしているような会社に届く郵便物の宛先に「経理ご担当者様」と書いてあるようなものである。 なお、一つのホストに複数のIPアドレスを与えるのもバーチャルホストという場合がある。これはマルチホームとは異なる概念である。
※この「バーチャルホスト」の解説は、「Fully Qualified Domain Name」の解説の一部です。
「バーチャルホスト」を含む「Fully Qualified Domain Name」の記事については、「Fully Qualified Domain Name」の概要を参照ください。
バーチャルホスト
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/07 20:16 UTC 版)
「Hypertext Transfer Protocol」の記事における「バーチャルホスト」の解説
1つのサーバーで複数のホスト名に対するHTTPリクエストを受け付ける機能である。 インターネット人気に伴い多くの企業がWebサイトを持ち始めたが、当時はまだまだ企業が自前のWebサーバを運用するのは人員、効率の問題で難しく、ISPのサーバでホスティングをしていた。また、1社ごとに専用サーバを用意するほどのことでもないため、1台のサーバで複数のWebサイトを運用していた。 しかし、IPアドレスのみで相手を特定するHTTP/1.0はこれに対応できなかった。例えば、ある1台のサーバに foo.example.com と bar.example.com という2つの仮想Webサーバがあり、クライアントは http://foo.example.com/index.html にアクセスしたいとする。この場合はDNSサーバに foo.example.com のIPアドレスを問い合わせ、次にそのIPアドレスを使って該当サーバにアクセスし、GET index.html を要求することになる。しかし同じサーバ上にある bar.example.comもIPアドレスは同じであり、もし両方の仮想サーバに index.html というファイルが存在すれば、クライアントがどちらにアクセスしようとしているのか、判別できない。 対策としてはそれぞれにIPアドレスを付与する方法もあるが、IPv4の資源を無駄にすることになる。この問題を解決するため、HTTP/1.1でHostヘッダーフィールドが追加され、名前ベースバーチャルホストが用いられるようになった。 名前ベースバーチャルホストのため、以下のようにHTTPリクエストでホスト名を指定する。 HTTP/1.1: Hostヘッダーフィールドでホスト名を指定する。 HTTP/2およびHTTP/3: :authority疑似ヘッダーフィールドでホスト名を指定する。
※この「バーチャルホスト」の解説は、「Hypertext Transfer Protocol」の解説の一部です。
「バーチャルホスト」を含む「Hypertext Transfer Protocol」の記事については、「Hypertext Transfer Protocol」の概要を参照ください。
- バーチャルホストのページへのリンク