サーバ名とポート番号(ServerName, Listen)

広告

ServerNameディレクティブはApacheサーバが自分自身のホスト名を示す時に使われる名前を指定します。例えばApacheがエラー表示をする場合に、自分自身を表すホスト名も合わせて表示する時などにここで設定したホスト名が使われます。

通常はIPアドレスに対して割り当てられているホスト名になりますが、別名などを割り当てていてそちらを正式なホスト名としたい場合に使います。「ServerName」が指定されていない場合はApacheに割り当てられているIPアドレスを逆引きしてホスト名を取得します。

書式は次の通りです。

ServerName ホスト名[:ポート番号]

「ServerName」の指定は「ホスト名:ポート番号」の形式で指定します。

それでは「httpd.conf」ファイルで「ServerName」を検索してみてください。160行目付近に次の記述が見つかります。

#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
#ServerName localhost:80

※デフォルトでは先頭に「#」が付いているためコメントとなっていました。以前はそうではなかったのですが取り合えずそのままにしてあります。

今回はApacheをローカル環境で動かしているので上記のようになっていますが、外部に公開されるWebサーバの場合は例えば「www.example.com」などのように指定することになるかと思います。

ServerName www.example.com:80

ポート番号は省略可能ですが、省略された場合はリクエストのポート番号を使われます。ポート番号も指定しておくことが推奨されています。

リクエストを受け付けるポート番号

ListenディレクティブはApacheが外部からリクエストを受け付けるポート番号を指定します。書式は次の通りです。

Listen [IPアドレス:]ポート番号 [プロトコル]

それでは「httpd.conf」ファイルで「Listen」で検索してみてください。40行目付近に次の記述が見つかります。

#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to 
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 80

リクエストを受け付けるポート番号として80番が指定されていることが確認できます。

受け付けることができるポート番号は1つだけではありません。複数のポート番号を受け付ける場合はListenディレクティブを複数記述して下さい。下記の場合は「80」番ポートと、「8080」番ポートでのリクエストを受け付けるようになります。

Listen 80
Listen 8080

ポート番号だけを指定した場合には、全てのインターフェースから指定したポート番号のリクエストを受け付けます。Apacheが稼動しているサーバに複数のインターフェースが接続されていて特定のインターフェースからのみリクエストを受け付けたいのであれば、そのインターフェースのIPアドレスを指定して下さい。

Listen 192.168.128.1:80

プロトコルに関してはポート番号443番を使う場合にはhttpsが、それ以外のポート番号の場合はhttpがデフォルトで設定されます。もし443番以外のポート番号を受け付ける場合でhttpsを使用した場合などに指定して下さい。

( Written by Tatsuo Ikura )