ヘッダーをスキップ

Oracle HTTP Server 管理者ガイド
10g(10.1.3.1.0)

B31847-01
目次
目次
索引
索引

戻る 次へ

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

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

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

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

Oracle HTTP Serverの処理モデル

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

UNIXの場合、複数の子プロセスを管理する親プロセスは1つです。子プロセスは、リクエストの処理を担当します。親プロセスは、構成に基づき、必要に応じて追加の子プロセスを作成します。サーバーでは動的に追加の子プロセスを作成できますが、追加の子プロセスを作成しなくても、リクエストを処理できる十分な子を最初から開始するようにサーバーを構成することが最善策です。

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

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

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

次のディレクティブを使用して、サーバー・プロセスを管理します。

ServerType

次の2つのオプションが用意されています。どちらのオプションも、UNIXにのみ適用されます。

inetd: リクエストの受信ごとに新規の子プロセスを起動します。リクエストの処理が完了すると、プログラムが終了します。この設定では、複数の子プロセスを待機させるオプションは指定できません。低速で高コストになる場合がありますが、安全性は高まります。このオプションはできるだけ避けてください。

standalone: 複数の子プロセスを待機させることができ、サーバーの起動は1回で済みます。これはビジーなWebサイト向けのデフォルトの推奨設定です。

サーバーでリクエストへのレスポンスに使用するUserGroupを指定する必要があります。

例: ServerType standalone

関連資料

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

Group

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

例: Group myorg

関連資料

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

User

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

例: User jdoe

関連資料

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

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

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

関連項目

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

StartServers

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

例: StartServers 5

関連資料

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

ThreadsPerChild

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

例: ThreadsPerChild 50

関連資料

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

MaxClients

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

例: MaxClients 150

関連資料

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

MaxRequestsPerChild

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

Windowsの場合は、0に設定することをお薦めします。0以外の値に設定した場合、リクエスト数が設定値に達すると、その子プロセスは終了し、再生成され、その時点で構成ファイルが再び読み取られます。これにより、構成ファイルを変更したが、その変更をまだ適用しない場合に、予期しない動作が発生する可能性があります。

例: MaxRequestsPerChild 0

関連資料

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

MaxSpareServers

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

例: MaxSpareServers 20

関連資料

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

MinSpareServers

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

例: MinSpareServers 5

関連資料

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

rootとしてのOracle HTTP Serverの実行

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

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

  1. Application Server Controlコンソールまたは次のコマンドを使用して、Oracle HTTP Serverを停止します。

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

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

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

  5. Application Server Controlコンソールまたは次のコマンドを使用して、Oracle HTTP Serverを再起動します。

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

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

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

PL/SQLアプリケーションがmod_plsqlのファイル・システム・キャッシュ機能を使用している場合は、パラメータPlsqlCacheDirectoryを使用して、httpdプロセスにキャッシュ・ディレクトリへの読取りおよび書込み権限を指定する必要があります。このパラメータは、UNIXの場合はORACLE_HOME/Apache/modplsql/conf/cache.conf、Windowsの場合はORACLE_HOME¥Apache¥modplsql¥conf¥cache.confにあります。デフォルトでは、このパラメータは、UNIXの場合はORACLE_HOME/Apache/modplsql/cache、Windowsの場合はORACLE_HOME¥Apache¥modplsql¥cacheを指します。

Oracle Application Server Portalの場合、mod_plsqlによりキャッシュされたコンテンツは、OC4J Portalの下で動作するパラレル・ページ・エンジンにより使用または更新されます。つまり、キャッシュ・ディレクトリはOC4J Portalによっても読取りおよび書込みが可能ということです。Oracle HTTP Serverがnobodyとして動作するように構成されている場合は、OC4J_Portalもnobodyとして動作する必要があります。

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

関連項目

「mod_plsql」 

プロセス情報の取得

Oracle HTTP Serverプロセスを監視するには複数の方法があります。

  1. Oracle Enterprise Manager 10g Application Server Controlコンソールを使用してOracle HTTP Serverプロセスを監視します。

    アプリケーション・サーバーとデータベース間で、ルーターやファイアウォールなどのデバイスにネットワーク・エラーが発生すると、JDBC接続がレスポンスを停止する場合があります。この場合はOracle HTTP Serverを手動で停止する必要があり、プロセスの停止に遅延が生じることがあります。

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

    関連資料

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

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


戻る 次へ
Oracle
Copyright © 2006 Oracle Corporation.

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