[APACHE DOCUMENTATION]

Apache HTTP Server

Apache が使用するアドレスとポートの設定


Apache は起動時に、ローカルなマシンのあるポートおよびアドレス に対して接続し、リクエストが来るのを待ちます。 デフォルトでは、マシン上のすべてのアドレス、およびサーバ設定ファイルの Port ディレクティブで設定されたポートに対して listen します。 しかし、複数のポートを listen する、指定されたアドレスに限って listen する、あるいはそれらを組み合わせて設定することも可能です。 これは、異なる IP アドレス、ホスト名、ポートに対する Apache の応答方法を決定するバーチャルホスト機能と組み合わせて使われます。

Apache が listen するアドレスおよびポートを限定するために使われる ディレクティブが二つあります。

BindAddress

構文: BindAddress [ * | IP アドレス | ホスト名 ]
デフォルト:BindAddress *
コンテキスト:サーバ設定ファイル
ステータス:コア

サーバを、特定のアドレスだけにバインドします。 引数が * (アスタリスク) の場合は、現在サーバ上で有効なすべての インタフェースにバインドします。ポートは Port ディレクティブでの設定が使われます。BindAddress は一つだけ使えます。

Listen

構文: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
とします。

バーチャルホストに対してどう働くのか

BindAddressListen はバーチャルホストを行なう わけではありません。それらはメインの Apache デーモンプロセスがどのアドレス をバインドし、どのポートを listen するのかということを指定します。 <VirtualHost> ディレクティブが全く使われない場合は、受け付けたリクエストすべてに対して 同じ動作をします。しかし、<VirtualHost> を使って一つあるいは複数の アドレスおよびポートに対して異なる動作をさせることも出来ます。 バーチャルホストを行なうには、サーバには次のことが必要です。 サーバで listen していないアドレスおよびポートを <VirtualHost> で指定した場合、アクセスできないことに注意してください。

関連項目

バーチャルホストBindAddress ディレクティブPort ディレクティブDNS の問題、および<VirtualHost> セクションの文書も参照してください。

Apache HTTP Server

Index