| [System Environment] | |||||||||||
IISで単一IPアドレスのサーバに複数の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 サイト]タブからIPアドレス/ポート番号/ホスト・ヘッダ値の一覧画面を開く | |||||||||
| Webサイトのホスト・ヘッダ値やIPアドレス、ポート番号については、この[Web サイト]タブで設定する。 | |||||||||
|
[Web サイト ID の詳細設定]画面が表示されたら、[この Web サイトの複数の ID]枠に注目する。ホスト・ヘッダ値はIPアドレスおよびポート番号と組み合わせて設定する必要があり、この枠には設定済みの組み合わせが一覧表示される。この組み合わせは1つのWebサイトにつき複数設定できる。新たにこの組み合わせを追加するには、[追加]ボタンをクリックする。
![]() |
|||||||||
| IPアドレスとポート番号、ホスト・ヘッダ値の一覧画面 | |||||||||
| ホスト・ヘッダ値は、IPアドレスおよびポート番号と組み合わせて設定する。この組み合わせは複数、設定が可能なので、例えば1つのWebサイトに複数のホスト・ヘッダ値を設定すると、複数のドメイン名で参照できるようになる。 | |||||||||
|
[Web サイトの識別の追加と編集]画面が表示されたら、ホスト・ヘッダ値とともにIPアドレスとポート番号を指定して、[OK]ボタンをクリックする。なお、ホスト・ヘッダ値には、ドメイン名に相当するIPアドレスも指定できる。例えば「192.168.1.101」と設定すると、「http://192.168.1.101/」のようにIPアドレスを直接指定したリクエストに応答するようになる。
![]() |
||||||||||||
| ホスト・ヘッダ値を設定する | ||||||||||||
| ホスト・ヘッダ値に対して、組み合わせるIPアドレスとポート番号を1対1で指定する。 | ||||||||||||
|
設定したら[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サイトのことで、通常はホスト・ヘッダ値を指定せずに運用する(詳細は後述)。 | |||
このとき、クライアントから指定された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サイトが停止する。
もう1つの注意点は、どの組み合わせにも該当しないリクエストを受け付けるWebサイトを用意することだ。さもないと、こうしたリクエストに対してIISはデフォルトでHTTPエラー・コード400(不正な要求)をクライアントに返すだけで、ユーザーに不親切だ。通常はIISが標準で作成する「既定の Web サイト」、すなわちWebサイト識別子が「1」のサイトにこの役割を担わせる。従って、通常のWebサイトは既定のWebサイトではなく、新たに作成した仮想サイトに構築した方がよい。
既定のWebサイトには、IPアドレスを「(未使用の IP アドレスすべて)」、ホスト・ヘッダ値を無指定、ポート番号は全Webサイトで使用しているものを1つずつ組み合わせて設定する。つまり、ポート番号が複数使用している場合は、この組み合わせも複数になる。80番ポートしか使っていない場合は、既定のWebサイトのデフォルト設定(「(未使用の IP アドレスすべて)」/80番ポート/ホスト・ヘッダ値なし)のままでよい。
|
これにより、どのホスト・ヘッダ値にも該当しない、すなわち予期せぬドメイン名でアクセスされた場合、既定のサイトにリクエストが届くようになる。あとはエラー・ページを表示するなり、別のサイトにリダイレクトするなり、セキュリティ・ポリシーなどに従って既定のWebサイトを設定すればよい。その設定方法の詳細は、関連記事を参照していただきたい。![]()
|
||||||||||||||||||||||||||||
| 「Windows TIPS」 |
TechTargetジャパン
- フォルダの名前が変更できない不具合を解消する (2012/5/25)
Windows 7のエクスプローラで画像ファイルやPDFが含まれるフォルダの名前が変更できなかったり、削除できなかったりする不具合の解消方法を解説する - 通信相手のMACアドレスを調べる近隣探索プロトコル (2012/5/24)
イーサネットで通信する場合、相手のMACアドレスが分からないとパケットを送信できない。ARPに代わるIPv6の近隣探索機能とは? - 第316話 ネット対応トイレ (2012/5/22)
毎日用をたすだけで、体温に体重、血圧、体脂肪率も計測して、尿検査、便検査も自動で実施、データはネット経由で医師に送られます - 私物のスマートフォンを業務に活用、「BYOD」って何? (2012/5/21)
私物のスマホやノートPCを組織的に業務に活用する「BYOD」が新たなトレンドとして注目されている。なぜいまBYODなのか? BYODのメリットとデメリットは?
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -







