ヘッダーをスキップ

Oracle HTTP Server スタンドアロン・デプロイの管理Apache 2.0ベース
10g(10.1.3.1.0)

B31848-02
目次
目次
索引
索引

戻る 次へ

3 サーバー・プロセスの管理

この章では、Oracle HTTP Serverプロセスの概要と、これらのプロセスを制御し、モニターする方法について説明します。

内容は、次のとおりです。

該当する場合は、Apache Software Foundationのマニュアルを参照しています。

3.1 Oracle HTTP Serverの処理モデル

Oracle HTTP Serverを起動すると、システムでhttpまたはhttpsリクエストをリスニングしてレスポンスを返す準備ができたことになります。リクエスト処理モデルは、UNIXとWindowsで異なります。

UNIXの場合は、複数の子プロセスを管理する親プロセスが1つ存在します。子プロセスは、リクエストの処理を担当します。親プロセスは、構成に基づき、必要に応じて追加の子プロセスを起動します。追加の子プロセスを動的に起動することは可能ですが、最初に十分な数の子プロセスが起動されるようにサーバーを構成し、子プロセスをそれ以上作成しなくてもリクエストを処理できるようにすることをお薦めします。

Windowsの場合は、親プロセスと子プロセスが1つずつ存在します。子プロセスは、クライアント・リクエストの処理を担当するスレッドを作成します。作成されるスレッドの数は静的であり、構成可能です。

3.2 サーバー・プロセスの処理

UNIXでは、デフォルトで、メインのhttpd親プロセスと子プロセスがOracle Application Serverをインストールしたユーザーとして動作するよう構成されます。子プロセスの権限を設定するには、UserおよびGroupディレクティブを使用します。rootとして実行していない場合、これらのディレクティブは無視されます。子プロセスには、処理されるすべての内容を読み取ることのできる権限が必要です。

3.2.1 Group

サーバーがリクエストへのレスポンスに使用するグループを指定します。このディレクティブを使用するには、スタンドアロン・サーバーをrootで実行する必要があります。サーバーの実行用に新規グループを作成することをお薦めします。このディレクティブはUNIXにのみ適用されます。

例: Group myorg

関連資料

Apache Serverマニュアルの「Group directive」 

3.2.2 User

サーバーがリクエストへのレスポンスに使用するユーザーIDを指定します。このディレクティブを使用するには、スタンドアロン・サーバーをrootで実行する必要があります。任意のユーザーが使用できるファイルへのアクセス権限が必要ですが、httpdリクエスト用以外のコードは実行できないようにする必要があります。サーバーの実行用に新規ユーザーを設定することをお薦めします。このディレクティブはUNIXにのみ適用されます。

例: User jdoe

関連資料

Apache Serverマニュアルの「User directive」 

3.3 プロセス数と接続数の構成

次のディレクティブを使用して、クライアント・リクエストの処理方法を構成し、Oracle HTTP Serverのパフォーマンスをチューニングします。これらのディレクティブは、httpd.confファイルのGlobal Environmentセクションにあります。

関連項目

「httpd.confのファイル構造」 

3.3.1 StartServers

Oracle HTTP Serverの起動時に作成される子サーバー・プロセスの数を設定します。デフォルトは5です。このディレクティブはUNIXにのみ適用されます。

使用方法: StartServers 5

関連資料

Apache Serverマニュアルの「StartServers directive」 

3.3.2 ThreadsPerChild

リクエストを処理する子スレッドの最大数を制御します。デフォルトは50です。このディレクティブはWindowsにのみ適用されます。

使用方法: ThreadsPerChild 50

関連資料

Apache Serverマニュアルの「ThreadsPerChild directive」 

3.3.3 MaxClients

一度に処理できるリクエスト数を制限します。デフォルト値と推奨値は150です。このディレクティブはUNIXにのみ適用されます。

使用方法: MaxClients 150

関連資料

Apache Serverマニュアルの「MaxClients directive」 

3.3.4 MaxRequestsPerChild

子プロセスで終了前に処理されるリクエスト数を制御します。値をデフォルトの0に設定すると、プロセスは終了しません。

Windowsでは、これを0に設定することをお薦めします。0以外の値に設定すると、リクエスト数に達したときに子プロセスが終了し、再作成されます。その際、子プロセスは構成ファイルを再度読み取ります。そのため、構成ファイルを変更したが、変更を適用するつもりはないという場合に、予期しない処理が行われる可能性があります。

使用方法: MaxRequestsPerChild 0

関連資料

Apache Serverマニュアルの「MaxRequestsPerChild directive」 

3.3.5 MaxSpareServers

アイドル状態の子サーバー・プロセスの最大数を設定します。アイドル・プロセスは、稼働中であってもリクエストを処理していないプロセスです。親プロセスは、このディレクティブの設定値を超えるアイドル状態の子プロセスを中断します。デフォルトは20です。このディレクティブはUNIXにのみ適用されます。

使用方法: MaxSpareServers 20

関連資料

Apache Serverマニュアルの「MaxSpareServers directive」 

3.3.6 MinSpareServers

アイドル状態の子サーバー・プロセスの最小数を設定します。アイドル・プロセスは、稼働中であってもリクエストを処理していないプロセスです。アイドル状態のプロセス数が減少すると、親プロセスにより最大で1秒当たり1プロセスの割合で新規の子プロセスが作成されます。デフォルトは5です。このディレクティブはUNIXにのみ適用されます。

使用方法: MinSpareServers 5

関連資料

Apache Serverマニュアルの「MinSpareServers directive」 

3.4 rootとしてのOracle HTTP Serverの実行

UNIXでは、1024以外のポート上で実行するには、rootとして実行する必要があります。

Oracle HTTP Serverをrootとして実行する手順は、次のとおりです。

  1. 次のコマンドを使用して、Oracle HTTP Serverを停止します。

    ORACLE_HOME/opmn/bin> opmnctl [verbose] stopproc ias-component=HTTP_Server
    
  2. rootユーザーに変更します。

  3. ORACLE_HOME/ohs/binにナビゲートして、次のコマンドを実行します。

    chown root .apachectl
    chmod 6750 .apachectl
    
  4. rootを終了します。

  5. 次のコマンドを使用して、Oracle HTTP Serverを再起動します。

    ORACLE_HOME/opmn/bin> opmnctl [verbose] restartproc ias-component=HTTP_Server
    

3.5 セキュリティに関する考慮事項

UNIXでのセキュリティ強化には、ユーザーをnobodyに変更できます。子プロセスがユーザーnobodyとしてタスクを実行できることを確認してください。すべてのファイルがユーザーnobodyにより読取り可能になるように(理想的には書込み可能にならないように)静的コンテンツ(UNIXの場合はORACLE_HOME/ohs/htdocsディレクトリ、Windowsの場合はORACLE_HOME¥ohs¥htdocsディレクトリなど)をすべて変更します。また、すべてのCGIおよびFastCGIプログラムをユーザーnobodyが実行できることも確認してください。

最後に、キャッシュ済コンテンツには機密データが含まれている可能性があるので、ファイル・システム・キャッシュの最終コンテンツはセキュリティで保護する必要があります。したがって、Oracle HTTP Serverがnobodyとして動作する場合でも、このユーザーとしてのシステムへのアクセスは十分に保護する必要があります。

3.6 プロセス情報の取得

Oracle HTTP Serverプロセスをモニターするには複数の方法があります。

  1. WindowsではPerformance Monitor、UNIXではpsユーティリティを使用します。

    関連資料

    詳細は、『Oracle Application Serverパフォーマンス・ガイド』およびオペレーティング・システムのマニュアルを参照してください。 

  2. mod_statusを使用してサーバーのステータスをモニターします。デフォルトでは、ローカル・ホストからのみ使用可能です。


戻る 次へ
Oracle
Copyright © 2007 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引