Windows TIPS
[System Environment]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

IISで単一IPアドレスのサーバに複数のWebサイトを設置・運用する(ホスト・ヘッダ編)

解説をスキップして操作方法を読む

デジタルアドバンテージ 島田 広道
2009/08/14
対象OS
Windows 2000 Server
Windows Server 2003
Webサーバを増やしたりIPアドレス/ポート番号を追加したりすることなく、Webサイトを増設したいことがある。
Webサイトごとにホスト・ヘッダ値を設定すれば、単一IPアドレスのWebサーバ1台でも複数のWebサイトを設置・運用できる。
IISでも、ホスト・ヘッダ値を利用して複数のWebサイトを運用することが可能だ。

解説

 新たにWebサイトを立ち上げたいが、コストなどの事情からWebサーバ・マシンは増やしたくないとき、既存のWebサーバ・マシンにそのWebサイトを追加することになるだろう。つまり単一のサーバ・マシンで複数のWebサイトを運用するということだ。この場合、どのように各Webサイトへのアクセス要求を正しく割り振るかが課題となる。

 単純なのは、Webサイトごとに異なるIPアドレスを割り当て、DNSサーバでも各Webサイトのドメイン名を各IPアドレスに名前解決させることで、各Webサイトへのアクセス要求を各IPアドレスに割り振ることだ。しかし、コストなどの事情からサーバ・マシンにIPアドレスを追加できないことも多い。

 Webサイトごとに異なるポート番号を割り当てるという方法もある。しかし、デフォルトの80番以外のポートを割り当てたWebサイトの場合、クライアント側では「http://www.example.jp:12345/index.html」のようにポート番号(ここでは12345番)をいちいちURLに加えなければならない。ユーザーに面倒を強いる点で、あまり好ましい方法とはいえない。

 そこでおすすめなのはホスト・ヘッダを利用する方法だ。ホスト・ヘッダとはクライアントからWebサーバへ送信されるHTTPリクエスト・パケットのヘッダに含まれる情報の1つで、通常はURL中のドメイン名が格納されている。例えばクライアントが「http://www.example.jp/index.html」というURLを開こうとした場合、ホスト・ヘッダには「www.example.jp」という値が格納される。つまり、各Webサイトに割り当てられたIPアドレスが同一であっても、ホスト・ヘッダを参照できれば、各Webサイトへのアクセス要求を識別できるということだ。

 Windows OS標準のInternet Information Services(IIS)にも、ホスト・ヘッダ値からWebサイトを識別する機能があり、単一IPアドレスでの複数Webサイトの運用が可能だ。本稿ではその設定方法と注意点について説明する。

 なお、Windows 2000 ProfessionalのIIS 5.0およびWindows XP ProfessionalのIIS 5.1には、Webサイトを1つしか運用できない制限があるため、そもそも複数のWebサイトは運用できない。しかし、ホスト・ヘッダ値そのものは、本稿で説明している手順で設定して利用できる。

操作方法

 本稿では、各Webサイトのドメイン名が、IISの稼働するWebサーバのIPアドレスに名前解決されるよう、あらかじめDNSサーバ(DNSゾーン)が設定されているものとする。

ホスト・ヘッダ値の設定手順

 IISでホスト・ヘッダに関する設定を行うには、まず管理者アカウントで[管理ツール]の[インターネットインフォメーション サービス (IIS) マネージャ](IISマネージャ)を起動し、対象のWebサイトのプロパティを開く。なお、以下ではいずれもWindows Server 2003+IIS 6.0の画面を例に挙げているが、Windows 2000 Server+IIS 5.0でも操作方法はほとんど変わらない(設定項目名などが若干異なる程度の違いしかない)。

対象のWebサイトのプロパティを開く
Webサイトにホスト・ヘッダ値を設定するには、まずIISマネージャでそのWebサイトのプロパティを開く。
対象のWebサイトを選んで右クリックする。
メニューが表示されたら、これを選ぶ→

 プロパティ画面が表示されたら[Web サイト]タブを選んで、[詳細設定]ボタンをクリックする。

[Web サイト]タブからIPアドレス/ポート番号/ホスト・ヘッダ値の一覧画面を開く
Webサイトのホスト・ヘッダ値やIPアドレス、ポート番号については、この[Web サイト]タブで設定する。
  これを選ぶ。
  IPアドレスやポート番号の一部が表示され、ホスト・ヘッダ値は表示されない。IPアドレスやポート番号にしても、これが設定されているすべてとは限らず、詳細はの画面で確認する必要がある。
  これをクリックする。→

 [Web サイト ID の詳細設定]画面が表示されたら、[この Web サイトの複数の ID]枠に注目する。ホスト・ヘッダ値はIPアドレスおよびポート番号と組み合わせて設定する必要があり、この枠には設定済みの組み合わせが一覧表示される。この組み合わせは1つのWebサイトにつき複数設定できる。新たにこの組み合わせを追加するには、[追加]ボタンをクリックする。

IPアドレスとポート番号、ホスト・ヘッダ値の一覧画面
ホスト・ヘッダ値は、IPアドレスおよびポート番号と組み合わせて設定する。この組み合わせは複数、設定が可能なので、例えば1つのWebサイトに複数のホスト・ヘッダ値を設定すると、複数のドメイン名で参照できるようになる。
  ここに、設定済みのIPアドレスとポート番号、ホスト・ヘッダ値の組み合わせが表示される。[IP アドレス]の「既定」とは、「(未使用の IP アドレスすべて)」を意味する。
  ホスト・ヘッダ値を追加するには、これをクリックする。→
  既存のホスト・ヘッダ値を変更するには、から設定済み項目を選んでから、これをクリックする。

 [Web サイトの識別の追加と編集]画面が表示されたら、ホスト・ヘッダ値とともにIPアドレスとポート番号を指定して、[OK]ボタンをクリックする。なお、ホスト・ヘッダ値には、ドメイン名に相当するIPアドレスも指定できる。例えば「192.168.1.101」と設定すると、「http://192.168.1.101/」のようにIPアドレスを直接指定したリクエストに応答するようになる。

ホスト・ヘッダ値を設定する
ホスト・ヘッダ値に対して、組み合わせるIPアドレスとポート番号を1対1で指定する。
  このプルダウン・リストボックスから、割り当てたいIPアドレスを選択する。WebサーバのIPアドレスが1つだけの場合は、デフォルトの「(未使用の IP アドレスすべて)」を選べばよい。
  ポート番号を記入する。特別なポート番号を利用していない限り、「80」を指定すればよい。
  ホスト・ヘッダ値、すなわちURLにおけるドメイン名の部分を記入する。
  設定が済んだら、これをクリックする。

 設定したら[OK]ボタンをクリックしていって各ダイアログを閉じていく。同じIISにある他のWebサイトについても同様に、ドメイン名に合わせたホスト・ヘッダ値を設定する。

ホスト・ヘッダ値の設定と実際に応答するWebサイトの関係

 上記の手順で、次のように複数のWebサイトに対してホスト・ヘッダ値を割り当てたとする。なお、以下のホスト・ヘッダ値にあるドメイン名はいずれも同一のIPアドレス(192.168.1.101)に名前解決されるものとする。

サイト名 IPアドレスの設定 ポート番号 ホスト・ヘッダ値
Webサイト1 (未使用の IP アドレスすべて) 80 www.example.jp
Webサイト2 (未使用の IP アドレスすべて) 80 bbs.example.jp、
192.168.1.101
Webサイト3 (未使用の IP アドレスすべて) 80 www.example.co.jp、
example.co.jp
既定のWebサイト (未使用の IP アドレスすべて) 80 (なし)
複数のサイトに対するホスト・ヘッダ値の設定例
どのドメイン名も、Webサーバに割り当てられた同一のIPアドレス(192.168.1.101)に名前解決されるものとする。なお、「既定の Web サイト」とは、IISが標準で作成するWebサイトのことで、通常はホスト・ヘッダ値を指定せずに運用する(詳細は後述)。

ホスト・ヘッダ値を設定したWebサイトの一覧表示
これは上表の4つのWebサイトにホスト・ヘッダ値などを設定した後に、IISマネージャで左ペインのツリーから[Web サイト]を選んだところ。右ペインの[ホスト ヘッダー値]列に各Webサイトのホスト・ヘッダ値が表示されていることが分かる。ただし、1つのWebサイトに複数のホスト・ヘッダ値を設定した場合は一部しか表示されないので要注意。実際、Webサイト2やWebサイト3に設定したはずの「192.168.1.101」「example.co.jp」が欠落している。

 このとき、クライアントから指定されたURLに対して応答するWebサイトは次のようになる。

URL 応答するWebサイト
http://www.example.jp/…… Webサイト1
http://bbs.example.jp/…… Webサイト2
http://192.168.1.101/…… Webサイト2
http://example.jp/…… 既定のWebサイト
http://www.example.co.jp/…… Webサイト3
http://example.co.jp/…… Webサイト3
http://bbs.example.co.jp/…… 既定のWebサイト
クライアントから指定されたURLと、応答するWebアドレスとの対応
IPアドレスで指定されたURLに対して特定のWebサイトに応答させたい場合は、上記のWebサイト2のようにホスト・ヘッダ値にIPアドレスも設定する必要がある。

 このように、URLで指定したドメイン部分にホスト・ヘッダ値が合致したWebサイトが応答する。いずれのWebサイトにも合致しない場合は、既定のWebサイトが応答する。 

ホスト・ヘッダを利用する際の注意点

 特に注意が必要なのは、各WebサイトにおけるIPアドレス/ポート番号/ホスト・ヘッダ値の組み合わせは、同一のIIS内の全Webサイトを通してユニーク(一意)でなければならない、という点だ。もし複数のWebサイト間で組み合わせが重複するとエラーが発生し、設定したWebサイトが停止する。

複数のWebサイト間でIPアドレス/ポート番号/ホスト・ヘッダ値の組み合わせが重複したときのエラー
これはIISマネージャにて、サイト「example site」と同じIPアドレス/ポート番号/ホスト・ヘッダ値の組み合わせをサイト「example site 2」にも設定した直後、F5キーを押して最新の状態を表示させたところ。
設定直後、example site 2は自動的に停止してしまった。これはIISが設定の重複を検出して自動的に当該サイトを停止したことによる。
ホスト・ヘッダ値、IPアドレス、ポート番号のいずれも、example site 2はexample siteのものと重複していることが分かる。
重複設定によるエラー・メッセージ。表面的な現象とメッセージの内容が食い違っているが、エラーが発生していることは分かる。

 もう1つの注意点は、どの組み合わせにも該当しないリクエストを受け付けるWebサイトを用意することだ。さもないと、こうしたリクエストに対してIISはデフォルトでHTTPエラー・コード400(不正な要求)をクライアントに返すだけで、ユーザーに不親切だ。通常はIISが標準で作成する「既定の Web サイト」、すなわちWebサイト識別子が「1」のサイトにこの役割を担わせる。従って、通常のWebサイトは既定のWebサイトではなく、新たに作成した仮想サイトに構築した方がよい。

 既定のWebサイトには、IPアドレスを「(未使用の IP アドレスすべて)」、ホスト・ヘッダ値を無指定、ポート番号は全Webサイトで使用しているものを1つずつ組み合わせて設定する。つまり、ポート番号が複数使用している場合は、この組み合わせも複数になる。80番ポートしか使っていない場合は、既定のWebサイトのデフォルト設定(「(未使用の IP アドレスすべて)」/80番ポート/ホスト・ヘッダ値なし)のままでよい。

TIPS「IISの『ページが見つかりません』ページをカスタマイズする
TIPS「IISでURLのリダイレクト(転送)を設定する(基本編)

 これにより、どのホスト・ヘッダ値にも該当しない、すなわち予期せぬドメイン名でアクセスされた場合、既定のサイトにリクエストが届くようになる。あとはエラー・ページを表示するなり、別のサイトにリダイレクトするなり、セキュリティ・ポリシーなどに従って既定のWebサイトを設定すればよい。その設定方法の詳細は、関連記事を参照していただきたい。End of Article

この記事と関連性の高い別のWindows TIPS
IEのセキュリティ設定を変更してセキュリティ機能を強化する
IISのログ・ファイル・フォルダを変更する
IIS移行ツールiismt.exeでIISの設定/環境を移行させる
IISでディレクトリ一覧の表示を有効にする
IIS 6.0の構成情報をバックアップする
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「Windows TIPS」

TechTargetジャパン

Windows Server Insider フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH