web サーバ (Apache/2.0) の設定
≪ previous next ≫

U.2.グローバル環境のディレクティブ

 httpd.conf のグローバルな環境設定に関する主なディレクティブには、次のようなものがある。

U.2.1.ServerRoot

 httpd のベースディレクトリを指定する。

ServerRoot directory
  • default : "/etc/httpd"
    ※ ダブルクォーテーションは省略可。
  • directory
    conf および logs サブディレクトリ (シンボリック リンク可) がある場所へのパスを記述する。
  • 省略しても /etc/httpd が参照されるが、明示しておく方が賢明だろう。

U.2.2.Timeout

 データ送受信時の待ち時間を秒単位で設定する

Timeout 秒数
  • default : 300
  • 設定値は次の 3 つに適用される。
    • GET リクエスト受信完了までの時間。
    • POST, PUT リクエスト時の、次のパケットまでの間隔。
    • レスポンスに対する確認通知 (ACK) までの時間。
  • デフォルト値より小さい値にしないことが推奨されている。

U.2.3.KeepAlive

 HTTP セッションの持続的な接続を、有効または無効に設定する。

KeepAlive On|Off
  • default : Off
    パフォーマンスを考慮すると On が望ましい。
  • パラメータは、On(有効) または、Off(無効) を設定する。
  • On(有効) とした場合の 1 TCP コネクションあたりのリクエスト許容数は MaxKeepAliveRequests で指定する。

U.2.4.MaxKeepAliveRequests

 KeepAlive ディレクティブが On の時、1 回の接続 (TCP) で受付を許容するリクエストの最大数を指定する。

MaxKeepAliveRequests 許容リクエスト数
  • default : 100
  • 設定値を超過した場合、TCP コネクションは切断される。
  • 0 を指定すると受け付けるリクエスト数は無制限になる。

U.2.5.KeepAliveTimeout

 KeepAlive ディレクティブが On の時、次のリクエストまでの待ち時間を秒単位で指定する。

KeepAliveTimeout 秒数
  • default : 15
  • リクエスト受付後は、Timeout ディレクティブが適用される。

U.2.6.StartServers, MinSpareServers, MaxSpareServers

 子プロセスの待機数を制御する。

StartServers プロセス数
  • default : 8
  • 起動時に生成される httpd の子プロセス数を設定する。

MinSpareServers プロセス数
  • default : 5
  • 待機する子プロセスの最小数を設定する。

MaxSpareServers プロセス数
  • default : 20
  • 待機する子プロセスの最大数を設定する。
  • MinSpareServers より小さい値を設定した場合、MinSpareServers + 1 に調整される。

 httpd はクライアントのリクエストに即応するため、幾つかの子プロセスが常に待機状態であるよう制御される。  (子プロセス数は負荷に応じて動的に増減される)
 httpd の動作は概ね次の通り。
  • 最初に起動される httpd プロセスは、root 権限で起動されてマスター プロセスとなる。
  • マスター プロセスは StartServers ディレクティブで指定された数の子プロセスを、User, Group ディレクティブ指定の権限で起動する。
  • マスター プロセスは子プロセスの状態(ビジーまたは待機)を監視する。
  • 待機中の子プロセスが MinSpareServers 以下になるとマスター プロセスは新しい子プロセスを起動する。
  • 待機中の子プロセスが MaxSpareServers 以上になるとマスター プロセスはいくつかの子プロセスを終了させる。


U.2.7.MaxClients

 許容可能な最大子プロセス数を設定する。

MaxClients プロセス数
  • default : 150
  • 子プロセスの許容数を設定する。
    ※ リクエストが増えて待機中の子プロセスが不足すると、httpd は子プロセスを起動する。 MaxClients は
       起動可能な子プロセス数を制限して、リクエストが輻輳した場合の子プロセス数増大を防止する。

U.2.8.MaxRequestsPerChild

 個々の子プロセスが扱うリクエストの制限数を設定する。

MaxRequestsPerChild リクエスト数
  • default : 1000
  • 制限数のリクエストを処理した子プロセスは、マスター プロセスにより終了させられる。
  • リクエスト数 に 0 を指定すると、扱うリクエスト数は無制限になる。
  • 0 以外を設定しておけば予想外のメモリ リークが発生した場合にも、子プロセスによるメモリ消費を抑制できる。

U.2.9.Listen

 リクエストを待ち受ける IP アドレスとポート番号を指定する。

Listen [IPaddress:]port
  • default : 0.0.0.0:80
    デフォルトは、全 IP インターフェースのポート 80 を指定している。
  • ポート番号 (port) のみを指定することも可能。
    その場合、全 IP インターフェースの指定ポート番号でリクエストを待ち受ける。
  • 複数の Listen ディレクティブを使用して、複数のアドレスとポートを指定可能。
    下記は 10.2.3.234 のポート 80、及び全 IP インターフェースのポート 3000 指定の例
    Listen 10.2.3.234:80
    Listen 3000
  • Listen ディレクティブ未設定の場合、httpd の起動は正常に行えるがリクエストには応答しない。



≪ previous [[ web サーバ - Apache/2.0 の設定 ]] next ≫