
第8回 バーチャルホストによる複数サイトの同時運用
一志 達也<ichishi@pochi.tis.co.jp>
TIS株式会社
2001/8/28
IPベースのバーチャルホスト
前置きが長くなってしまったが、設定の解説に移ろう。バーチャルホストは、概念が複雑な割に設定そのものは単純である。ただし、バーチャルホストにはDNSの設定が不可欠である。複数のホストを賄うにしろ複数のドメインを担うにしろ、DNSの変更なしにアクセスを受け入れることなどできないからである。
■DNSの設定
まず、DNSの設定を済ませてしまおう。IPベースの場合は、ホストごとにIPアドレスを持つので特殊な設定は必要ない。ゾーンファイルに、
www IN A 172.16.1.11 |
という具合に、Aレコードを羅列していくだけである(ゾーンファイルの設定については、「BINDで作るDNSサーバ」第2回 名前解決の仕組みとゾーンファイルの設定を参照)。つまり、それぞれユニークなIPアドレスを持った複数のWebサーバが存在するものとして、各ホストを通常どおりに登録するだけである。
■Apacheの設定
Apacheの設定には、VirtualHostディレクティブを利用する。VirtualHostディレクティブは、
<VirtualHost IPアドレス> |
のように記述し、これが1ホスト分のブロックとなる。つまり、バーチャルホストでホスティングしたいホストの数だけ、このブロックを記述すればよい。IPベースで注意する点は、<VirtualHost IPアドレス>のIPアドレスを各ブロックで異なるものにしなければならないということである。Apacheは、このIPアドレスでホストの設定のブロックを識別するからである。
<VirtualHost>と</VirtualHost>の間には、各ホストの設定に必要なディレクティブを列挙する。最低限、ホスト名を表すServerNameディレクティブとそのホストのコンテンツディレクトリを表すDocumentRootディレクティブを記述しなくてはならない。これ以外はオプション的な扱いとなるが、管理者のメールアドレスを表すServerAdminディレクティブやログファイルの位置を表すErrorLog、TransferLogディレクティブくらいは記述しておくことをお勧めする。従って、VirtualHostディレクティブで囲まれたブロックの基本構造は、
<VirtualHost IPアドレス> |
となる。
以上の条件に従って、「www」と「linux」という2つのホストを定義したものが次の例である。このようなものをApacheの設定ファイルhttpd.confの最後に記述する。最後でなくても構わないが、httpd.confの最後にVirtualHostディレクティブの例が示されているため、これに準じて最後に記述するのが一般的だ。
<VirtualHost 192.168.1.11> |
最後に、IPベースのバーチャルホストではBindAddressディレクティブにも注意してほしい。BindAddressディレクティブは、そのApacheがリクエストを受け付けるIPアドレスを定義する。例えば、
BindAddress 192.168.1.11 |
と書かれていたら、そのApacheは192.168.1.11にアクセスされた場合しか要求を受け付けなくなる。IPベースでは複数のIPアドレスを受け付けなければならないので、これではまずい。複数のIPアドレスでアクセスを受け付けたければ、
BindAddress 192.168.1.11 192.168.1.12 |
のようにIPアドレスを続けて書くか、
BindAddress 192.168.1.* |
としてワイルドカードを使う。また、
BindAddress * |
とすれば、そのサーバに割り当てられたすべてのIPアドレスへのアクセスを受け入れるようになる。
NAMEベースのバーチャルホスト
こちらもIPベースと同様、DNS、Apacheの順で解説する。
■DNSの設定
IPベースの場合は、Aレコードで各ホストとIPアドレスの対応をDNSに登録していた。しかし、NAMEベースの場合はIPアドレスが1つしかないため、Aレコードで登録することはできない。NAMEベースでは、1ホスト分のみAレコードで登録し、残りのホストはCNAMEレコードで別名定義する。例えば、「www」と「linux」という2つのホストを172.16.1.11という1つのIPアドレスで運用するなら、
www IN A 172.16.1.11 |
と記述する。まずAレコードでwwwというホストに172.16.1.11というIPアドレスを割り当てる。linuxというホストはCNAMEを使ってwwwの別名として登録する。こうすることで、172.16.1.11というIPアドレスにはwwwとlinuxという2つのホスト名が割り当てられたことになる。ホストを増やす場合は、同様に
ホスト名 IN CNAME www |
という行を追加していけばよい。
■Apacheの設定
NAMEベースの場合、使うIPアドレスは1つだけなのでBindAddressディレクティブへの注意は必要ない。その代わり、NameVirtualHostディレクティブを使って複数のホスト名で共有するIPアドレスを示さなくてはならない。
以下の例は、192.168.1.11でwwwとlinuxの2つのホスト名を利用する場合の設定例だ。
NameVirtualHost 192.168.1.11 |
NameVirtualHostの追加と、VirtualHostに記述するIPアドレスが共通であることを除けば、IPベースの設定とNAMEベースの設定に違いはない(編注2)。
| 編注2:ところで、NAMEベースのバーチャルホストを構築しているサイトに、IPアドレスでアクセスしたらどうなるだろうか? 答えは、「最初に記述されたブロックの設定が使われる」である。つまり、上記の例の場合はwwwというホストとして処理されるのである。バーチャルホストを構築する場合は、デフォルトとして機能するホストを最初に記述するようにしよう。 |
まとめと次回予告
以上のように、バーチャルホストは概念が少々複雑だから方針の決定や設計には注意が必要だが、設定そのものは難しくない。
次回は、Webのセキュリティについて紹介しようと思う。Webサーバで提供するコンテンツのセキュリティ管理には、十分に気を使わなくてはならない。ファイアウォールやセキュリティホールの管理、ウイルスへの対応策ばかりに注目が集まるが、だれもがアクセスできるWebサーバのコンテンツにも注意が必要なのである。
|
2/2
|
|
| Index | |
| ApacheによるWebサーバ構築 | |
| バーチャルホストとは なぜバーチャルホストが必要なのか |
|
| バーチャルホストを実現する2つの方式 IPベース NAMEベース |
|
| IPベースのバーチャルホスト DNSの設定 Apacheの設定 |
|
| NAMEベースのバーチャルホスト DNSの設定 Apacheの設定 |
|
| まとめと次回予告 | |
| 連載 ApacheによるWebサーバ構築 |
| Linux Squareフォーラム サーバ構築・運用関連記事 |
| 連載:Heartbeatでかんたんクラスタリング(連載中) オープンソースソフトウェアの「Heartbeat」を使ってHAクラスタを実現し、サービスを「落とさない」仕組みを実現します |
|
| 特集:Apache 2.2でWebサイトをパフォーマンスアップ! 最新安定版Apache 2.2は、何が変わったのか? 最新のApacheを新機能の使い方とともに解説する |
|
| 連載:実用 Apache 2.0運用・管理術(全8回) 本連載では、Apache 2.0の運用や管理方法を解説する。まず必須設定と基本的なセキュリティ対策を行い今後の運用に備える |
|
| 連載:実用
BIND 9で作るDNSサーバ(全15回) 本連載では、BIND 9の構築/運用方法を解説していく。実際に役立つことを目的に、セキュリティや大規模運用などのテーマを取り上げていく |
|
| 連載:実用qmailサーバ運用・管理術(全14回) 本連載を通して、qmailによるメールサーバの高度な構築・運用・管理術を紹介。SPAM対策やML管理からサーバでのウイルスチェックなどまで |
|
| 特集:Samba
3.0の全貌 改訂版 Samba 3.0リリースから8カ月。ここであらためて、Samba 3.0系列の新機能、インストール方法、国際化の現状を解説する |
|
|
ホワイトペーパー(TechTargetジャパン)
- natテーブルを利用したLinuxルータの作成 (2010/2/9)
natテーブルを用い、市販のブロードバンドルータと同等かそれ以上の機能を備える「Linuxルータ」を作成してみましょう - Web監視機能を賢く利用する (2010/2/2)
プロセスの稼働確認だけでは、サービスが正常に提供できているか分からないことも。そこで使いたいのがWeb監視です - ものいわぬOpenLDAPサーバのログ管理 (2010/1/20)
不満をいわないコンピュータが相手だからこそ、常にログが確認できる状態を整備することが重要になります - ネットワークアクセス権も放棄せよ (2010/1/12)
新しいセキュリティ機構「disablenetwork」を提案する1通のメールから始まった議論が、LSMも巻き込む話へと拡大しました
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |






