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


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

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

BindAddress

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

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

Listen

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

Listen ディレクティブは BindAddress および Port ディレクティブの代わりとして使うこともできます。 これにより特定のポートまたはアドレスとポートの組合わせに対しての リクエストをサーバが受け付けるようにします。 ポート番号だけの、最初のフォーマットを使った場合、Port ディレクティブで設定されたポートではなくサーバ上で有効なすべての インタフェースに対して、ここで設定されたポートを listen します。 ポートと共に IP アドレスを指定した場合は、指定されたポートと インタフェースに対して listen します。

複数の Listen ディレクティブにより、listen するアドレスとポートを いくつも指定することも出来ます。 リストされたアドレスとポート全てに対して応答します。

例えば、ポート 80 と 8000 の両方に対しての接続を受け付けるには

   Listen 80
   Listen 8000
とします。 2 つの指定されたインタフェースとポート番号に対しての接続を受け付けるには
   Listen 192.170.2.1:80
   Listen 192.170.2.5:8000
とします。

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

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

関連項目

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