1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head><!--
4 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5 This file is generated from xml source: DO NOT EDIT
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
8 <title>名前ベースのバーチャルホスト - Apache HTTP サーバ</title>
9 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
13 <body id="manual-page"><div id="page-header">
14 <p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/directives.html">ディレクティブ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p>
15 <p class="apache">Apache HTTP サーバ バージョン 2.0</p>
16 <img alt="" src="../images/feather.gif" /></div>
17 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
19 <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP サーバ</a> > <a href="http://httpd.apache.org/docs/">ドキュメンテーション</a> > <a href="../">バージョン 2.0</a> > <a href="./">バーチャルホスト</a></div><div id="page-content"><div id="preamble"><h1>名前ベースのバーチャルホスト</h1>
21 <p><span>Available Languages: </span><a href="../de/vhosts/name-based.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
22 <a href="../en/vhosts/name-based.html" hreflang="en" rel="alternate" title="English"> en </a> |
23 <a href="../es/vhosts/name-based.html" hreflang="es" rel="alternate" title="Español"> es </a> |
24 <a href="../ja/vhosts/name-based.html" title="Japanese"> ja </a> |
25 <a href="../ko/vhosts/name-based.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
26 <a href="../tr/vhosts/name-based.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
29 <p>この文書では名前ベースのバーチャルホストをどんなとき、
32 <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#namevip">名前ベースと IP ベースのバーチャルホストの比較</a></li>
33 <li><img alt="" src="../images/down.gif" /> <a href="#using">名前ベースのバーチャルホストを利用する</a></li>
34 <li><img alt="" src="../images/down.gif" /> <a href="#compat">古いブラウザとの互換性</a></li>
35 </ul><h3>参照</h3><ul class="seealso"><li><a href="ip-based.html">ネームベースのバーチャルホスト</a></li><li><a href="details.html">バーチャルホストのマッチングについての詳細</a></li><li><a href="mass.html">大量のバーチャルホストの動的な設定</a></li><li><a href="examples.html">バーチャルホストの一般的な設定例</a></li><li><a href="examples.html#serverpath">ServerPath 設定例</a></li></ul></div>
36 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
38 <h2><a name="namevip" id="namevip">名前ベースと IP ベースのバーチャルホストの比較</a></h2>
40 <p>IP ベースのバーチャルホストでは、応答する
41 バーチャルホストへのコネクションを決定するために IP
42 アドレスを使用します。ですから、それぞれのホストに個々に IP
43 アドレスが必要になります。これに対して名前ベースのバーチャルホストでは、
44 クライアントが HTTP ヘッダの一部としてホスト名を告げる、
45 ということに依存します。この技術で同一 IP
46 アドレスを異なる多数のホストで共有しています。</p>
48 <p>名前ベースのバーチャルホストは通常単純で、それぞれのホスト名と
49 それに対応する正確な IP アドレスを DNS で設定し、異なる
50 ホスト名を区別するように Apache HTTP サーバを設定するだけです。
51 さらに、名前ベースのバーチャルホストは不足する IP
52 アドレスの需要を緩和します。したがって、IP ベースのバーチャルホストを
53 選択すべき特定の理由がなければ名前ベースのバーチャルホストを使うべきです。
54 IP ベースのバーチャルホストを使用することを考慮する理由として、</p>
57 <li>名前ベースのバーチャルホストに対応していない古いクライアントがある
58 名前ベースのバーチャルホストが働くためには、クライアントは
59 HTTP ホストヘッダを送ってこなければなりません。
60 これは HTTP/1.1 の仕様で要求されていて、すべての現代的な
61 HTTP/1.0 ブラウザでも拡張として実装されています。
62 とても古いクライアントをサポートしつつ、名前ベースの
63 バーチャルホストを行いたい場合は、この文書の最後の方に
64 書かれている解決策になるかもしれない方法を見てください。</li>
66 <li>名前ベースのバーチャルホストは SSL プロトコルの特徴により、
67 SSL セキュアサーバには使えません。</li>
69 <li>オペレーティングシステムやネットワーク装置のなかには、
70 別の IP アドレス上でない場合、複数のホストを別扱いできないような
71 帯域管理の方法を実装しているものがあります。</li>
74 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
76 <h2><a name="using" id="using">名前ベースのバーチャルホストを利用する</a></h2>
78 <table class="related"><tr><th>関連モジュール</th><th>関連ディレクティブ</th></tr><tr><td><ul><li><code class="module"><a href="../mod/core.html">core</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code></li><li><code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code></li><li><code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code></li><li><code class="directive"><a href="../mod/core.html#servername">ServerName</a></code></li><li><code class="directive"><a href="../mod/core.html#serverpath">ServerPath</a></code></li><li><code class="directive"><a href="../mod/core.html#virtualhost">VirtualHost</a></code></li><li><code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code></li></ul></td></tr></table>
80 <p>名前ベースのバーチャルホストを使うには、そのホストへの
81 リクエストを受け付けるサーバの IP アドレス (もしかしたらポートも)
83 これは <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>
84 ディレクティブで設定します。通常、<code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code> で
85 <code>*</code> の属性を使ってサーバの全ての IP アドレスを使います。
86 (例えば SSL の使用などで) 複数のポートを使うことを計画しているのであれば、
87 引数に <code>*:80</code> のようにポートも含めるようにしてください。
88 <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code> ディレクティブで
90 自動的にサーバがその IP アドレスをリッスンするということはないことに
91 注意してください。詳細は「<a href="../bind.html">Apache の使うアドレスと
92 ポートを設定する</a>」を読んでください。さらに、ここで指定された
93 IP アドレスは全てサーバのネットワークインターフェースと関連付けられて
96 <p>次は、扱うホストそれぞれに対して <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> ブロックを
97 作成してください。<code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>
98 ディレクティブの引数は <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>
99 ディレクティブの引数と同じにしてください (すなわち、IP アドレスか、全てのアドレスを意味する
100 <code>*</code>)。それぞれの <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>
101 ディレクティブの中には、最低限、どのホストが扱われるかを示す <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> ディレクティブと、
102 そのホスト用のコンテンツがファイルシステム上のどこにあるかを示す
103 <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> ディレクティブを
106 <div class="note"><h3>メインホストはなくなります</h3>
107 <p>既にあるウェブサーバにバーチャルホストを追加する場合、
108 既存のウェブサーバに対しても <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>
109 ブロックを作らなければなりません。このバーチャルホストの
110 <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> と
111 <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>
112 は、グローバルな <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> と
113 <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>
114 と同じものにします。また、このバーチャルホストを設定ファイルの中で
115 先頭に置いて、デフォルトホストとして動作するようにします。</p>
118 <p>たとえば、<code>www.domain.tld</code> を動かしていて、
119 さらにバーチャルホスト <code>www.otherdomain.tld</code>
120 を追加するとしましょう。このバーチャルホストは同一 IP を指しているとします。
121 そのような場合は、<code>httpd.conf</code>
122 に以下のようなコードを追加するだけです</p>
124 <div class="example"><p><code>
125 NameVirtualHost *:80<br />
127 <VirtualHost *:80><br />
128 <span class="indent">
129 ServerName www.domain.tld<br />
130 ServerAlias domain.tld *.domain.tld<br />
131 DocumentRoot /www/domain<br />
133 </VirtualHost><br />
135 <VirtualHost *:80><br />
136 <span class="indent">ServerName www.otherdomain.tld<br />
137 DocumentRoot /www/otherdomain<br />
139 </VirtualHost><br />
142 <p><code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code> 及び
143 <code class="directive"><a href="../mod/core.html#virtualhost">VirtualHost</a></code> のどちらの場合も、
144 * の部分には明示的に IP アドレスを指定することができます。
145 例えば、ある IP アドレスでは名前ベースのバーチャルホストを使いたい一方で、
146 別の IP アドレスでは、他の IP ベースのバーチャルホストや
147 別組の名前ベースのバーチャルホストを使いたい場合、
150 <p>複数の名前でサーバアクセスができるようにしたいことも多いでしょう。
151 このようなことは、<code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code> ディレクティブを <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>
153 例えば上記の <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> の例であれば、
155 ユーザが同一のウェブサイトとして目にして使用できるサーバ名である、
156 と <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code>
159 <div class="example"><p><code>
160 ServerAlias domain.tld *.domain.tld
163 <p><code>domain.tld</code> ドメインへの全てのホストへのリクエストは
164 <code>www.domain.tld</code> のバーチャルホストが処理します。
165 名前をマッチさせるために、ワイルドカード文字 * や ?
166 を使用することもできます。もちろん思いつきの名前を作って、
167 <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> や
168 <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code>
169 にその名前を書くといったことはできません。まずは、
170 これらの名前が サーバに付けられた IP アドレスにマップされるように
171 DNS サーバを適切に設定しなければなりません。</p>
173 <p>最後に、<code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> コンテナの中に
174 他のディレクティブを書くことで、バーチャルホストの設定を細かく調整
176 ほとんどのディレクティブはこれらのコンテナに設置することができて、
177 変更点はそのバーチャルホストに対してのみ有効になります。
178 どのディレクティブを書くことができるかは、ディレクティブの <a href="../mod/directive-dist.html#context">コンテキスト</a> を
179 調べてください。<em>主サーバコンテキスト</em>
180 (<code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>
181 コンテナの外) の設定用ディレクティブはバーチャルホストでの設定で
182 上書きされない場合のみ使用されます。</p>
184 <p>リクエストが来ると、サーバはまず最初に <code class="directive"><a href="../mod/core.html#namevirtualhost"><NameVirtualHost></a></code>
185 にマッチする IP アドレスかどうかをチェックします。マッチすれば
186 マッチした IP アドレスの <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>
188 <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> か
189 <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code>
191 見つかればそのサーバ用の設定を使います。マッチするバーチャルホスト
192 が見つからなければ、マッチした IP アドレスの
193 <strong>リストの最初にあるバーチャルホスト</strong> が使われます。</p>
195 <p>結果として、リストの最初のバーチャルホストが <em>デフォルト</em> の
196 バーチャルホストになります。IP アドレスが <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>
197 ディレクティブにマッチした場合は、<em>メインのサーバ</em> の
198 <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>
199 は<strong>決して使われません</strong>
200 どのバーチャルホストにもマッチしないリクエストに対して、
201 特別な設定をしたいのであれば、設定ファイル中の最初の
202 <code><VirtualHost></code> コンテナにそれを記述してください。</p>
204 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
205 <div class="section">
206 <h2><a name="compat" id="compat">古いブラウザとの互換性</a></h2>
208 <p>以前述べたように、名前ベースのバーチャルホストが正しく動作する
209 ために必要な情報を送ってこないクライアントが依然として存在しています。
210 そのようなクライアントに対しては、該当する IP アドレスについて、
212 (<cite>プライマリ</cite>の名前ベースのバーチャルホスト)
215 <div class="note"><h3>どのぐらい古いの ?</h3>
216 <p>「古い」と表現している場合、本当に古いことを意味して使っています。
217 不幸にして今現在でもこのような古いブラウザに遭遇することがあります。
218 現在のブラウザは全て、名前ベースのバーチャルホストに必要な
219 <code>Host</code> ヘッダを送ります。</p>
222 <p><a href="../mod/core.html#serverpath"><code>ServerPath</code></a>
223 ディレクティブで対処が可能です。ちょっと不格好ですけれども。</p>
227 <div class="example"><p><code>
228 NameVirtualHost 111.22.33.44<br />
230 <VirtualHost 111.22.33.44><br />
231 <span class="indent">
232 ServerName www.domain.tld<br />
233 ServerPath /domain<br />
234 DocumentRoot /web/domain<br />
236 </VirtualHost><br />
239 <p>この例にはどういう意味があるでしょうか? これは
240 "<code>/domain</code>" で始まる URI へのリクエストはすべて、
241 バーチャルホスト <code>www.domain.tld</code> で処理される、
242 という意味です。つまり、すべてのクライアントで
243 <code>http://www.domain.tld/domain/</code> でアクセスできるページが、
244 <code>Host:</code> ヘッダを送ってくるクライアントであれば
245 <code>http://www.domain.tld/</code> としてもアクセスできる、
250 <code>http://www.domain.tld/domain/</code> へのリンクを設置します。
251 そして、バーチャルホストのページでは、純粋な相対リンク (<em>例:</em>
252 "<code>file.html</code>" や "<code>../icons/image.gif</code>")、
253 あるいは <code>/domain/</code> で始まるリンク (<em>例:</em>
254 "<code>http://www.domain.tld/domain/misc/file.html</code>" や
255 "<code>/domain/misc/file.html</code>") だけを設置します。</p>
257 <p>これには、幾分かの規律が必要となりますが、
258 このようなガイドラインを忠実に守ることにより、たいていの場合、
259 すべてのブラウザで ― 新しいブラウザでも古いものでも ―
260 作成したページが見えるということを保証します。</p>
263 <div class="bottomlang">
264 <p><span>Available Languages: </span><a href="../de/vhosts/name-based.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
265 <a href="../en/vhosts/name-based.html" hreflang="en" rel="alternate" title="English"> en </a> |
266 <a href="../es/vhosts/name-based.html" hreflang="es" rel="alternate" title="Español"> es </a> |
267 <a href="../ja/vhosts/name-based.html" title="Japanese"> ja </a> |
268 <a href="../ko/vhosts/name-based.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
269 <a href="../tr/vhosts/name-based.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
270 </div><div id="footer">
271 <p class="apache">Copyright 2009 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
272 <p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/directives.html">ディレクティブ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p></div>