Apache HTTP Server
Apache が使用するアドレスとポートの設定
Apache は起動時に、ローカルなマシンのあるポートおよびアドレス
に対して接続し、リクエストが来るのを待ちます。
デフォルトでは、マシン上のすべてのアドレス、およびサーバ設定ファイルの
Port ディレクティブで設定されたポートに対して listen します。
しかし、複数のポートを listen する、指定されたアドレスに限って
listen する、あるいはそれらを組み合わせて設定することも可能です。
これは、異なる IP アドレス、ホスト名、ポートに対する Apache
の応答方法を決定するバーチャルホスト機能と組み合わせて使われます。
Apache が listen するアドレスおよびポートを限定するために使われる
ディレクティブが二つあります。
- BindAddress
は、サーバが単一のアドレスを listen するように限定します。
異なる IP アドレスを listen させた複数の Apache
を同一マシン上で動作させることができるようにするために使用できます。
- Listen は単一の Apache
サーバが複数のアドレス/ポートを listen するために使われます。
構文: BindAddress [ * |
IP アドレス | ホスト名 ]
デフォルト:BindAddress
*
コンテキスト:サーバ設定ファイル
ステータス:コア
サーバを、特定のアドレスだけにバインドします。
引数が * (アスタリスク) の場合は、現在サーバ上で有効なすべての
インタフェースにバインドします。ポートは Port
ディレクティブでの設定が使われます。BindAddress は一つだけ使えます。
構文:Listen [ポート |
IP アドレス:ポート ]
デフォルト:
none
コンテキスト:サーバ設定ファイル
ステータス:コア
Listen ディレクティブは BindAddress および
Port ディレクティブの代わりとして使うこともできます。
これにより特定のポートまたはアドレスとポートの組合わせに対しての
リクエストをサーバが受け付ける (listen する) ようにします。
ポート番号だけの、最初の書式を使った場合、Port
ディレクティブで設定されたポートではなくサーバ上で有効なすべての
インタフェースに対して、ここで設定されたポートを listen します。
ポートと共に IP アドレスを指定した場合は、指定されたポートと
インタフェースに対して listen します。
複数の Listen ディレクティブにより、listen するアドレスとポートを
いくつも指定することも出来ます。
リストされたアドレスとポートすべてに対して応答します。
たとえば、ポート 80 と 8000 の両方に対しての接続を受け付けるには
Listen 80
Listen 8000
とします。
二つの指定されたインタフェースとポート番号に対しての接続を受け付けるには
Listen 192.170.2.1:80
Listen 192.170.2.5:8000
とします。
バーチャルホストに対してどう働くのか
BindAddress と Listen はバーチャルホストを行なう
わけではありません。それらはメインの Apache デーモンプロセスがどのアドレス
をバインドし、どのポートを listen するのかということを指定します。
<VirtualHost>
ディレクティブが全く使われない場合は、受け付けたリクエストすべてに対して
同じ動作をします。しかし、<VirtualHost> を使って一つあるいは複数の
アドレスおよびポートに対して異なる動作をさせることも出来ます。
バーチャルホストを行なうには、サーバには次のことが必要です。
- 目的のアドレスとポートを Listen するように指示されている
- 指定されたポートとアドレスに対して、
バーチャルホストの振る舞いを設定するために
<VirtualHost> セクションが作られている
サーバで listen していないアドレスおよびポートを <VirtualHost>
で指定した場合、アクセスできないことに注意してください。
関連項目
バーチャルホスト、BindAddress
ディレクティブ、Port
ディレクティブ、DNS
の問題、および<VirtualHost>
セクションの文書も参照してください。
Apache HTTP Server