Apache HTTP Server Version 2.0
バインド
Apache が使用するアドレスとポートの設定をします。
参照
概要
関連モジュール core
mpm_common
関連ディレクティブ VirtualHost
Listen
Apache は起動時に、ローカルマシンのあるポートあよびアドレス に対して接続し、リクエストが来るのを待ちます。 デフォルトではマシンのすべてのアドレスに対して listen します。 しかしながら、特定のポートか、特定のアドレスのみか、 またはそれらの組み合わせのいずれかを listen するようにする必要があります。 これは、異なる IP アドレス、ホスト名、ポートに対する Apache の応答方法を決定するバーチャルホスト機能と組み合わせて使われます。
Listen
ディレクティブで、特定のポートやアドレス・ポートの組からのみ入ってくる リクエストを受け付けるようにできます。 もしポート番号のみがListen
ディレクティブで指定された場合は、 すべてのインターフェースの与えられたポート番号を listen します。 IP アドレスがポート番号と同時に与えられた場合は、 サーバは与えられたポートとインターフェースを listen します。 複数の Listen ディレクティブを用いて いくつかの listen するアドレスとポートを指定できます。 サーバはリストされたアドレスやポートからのすべてのリクエストに 対して応答します。たとえば、ポート 80 と 8000 の両方に対しての接続を受け付けるには
Listen 80
Listen 8000とします。 二つの指定されたインタフェースとポート番号に対しての接続を受け付けるには、
Listen 192.170.2.1:80
Listen 192.170.2.5:8000とします。 IPv6 アドレスは、角括弧で次の例のように囲まなければいけません。
Listen [fe80::a00:20ff:fea7:ccea]:80
IPv6 の特記事項
APR が IPv6 をサポートする場合は、Apache はデフォルトで IPv6 を listen するソケットを作ります (例えば Listen ディレクティブで IP アドレスが無指定の場合)。 つまり、APR が IPv6 をサポートしている場合、
Listen 80
は、次と同じ意味になります。
Listen [::]:80
APR が IPv6 をサポートしていない場合は、
Listen 80
は、次と同じ意味になります。
Listen 0.0.0.0:80
NetBSD 等のいくつかのプラットホームでは、IPv6 のワイルドカードアドレス (「::」) のバインドでは IPv4 インターフェースにコネクションを張れません。 このような状況では、次のように複数の Listen ディレクティブが必要になります。
Listen 0.0.0.0:80
Listen [::]:0Apache は現在これを自動検出することができないので、 そのような場合は Listen 命令文は管理者が手動で編集しないといけません。
バーチャルホストに対してどう働くのか
Listen でバーチャルホストが実装されるわけではありません。 Listen は単にメインサーバにどのアドレスとポートを listen すべきかを 教えるだけです。
<VirtualHost>
ディレクティブが使われない場合は、 受け入れたリクエストすべてに対して全く同じ挙動をします。 しかしながら<VirtualHost>
を使って、 一つ以上のアドレスやポートに対して異なる挙動をするように 指定することができます。 VirtualHost を実装するには、使用するアドレスとポートを まず初めにサーバに通知しなければなりません。 そして、その指定したアドレスとポートでの このバーチャルホストの挙動を設定するために、<VirtualHost>
セクションを作ります。もし<VirtualHost>
が listen していないアドレスとポートに対して 設定されてしまうと、 それにはアクセスできないということに注意してください。