Oracle HTTP Server 管理者ガイド
10g(10.1.3.1.0) B31847-01 |
|
この章では、Oracle HTTP Serverプロセスの概要と、これらのプロセスを制御し、監視する方法について説明します。
内容は、次のとおりです。
該当する場合は、Apache Software Foundationのマニュアルを参照しています。
Oracle HTTP Serverを起動すると、システムでhttpまたはhttpsリクエストをリスニングしてレスポンスを返す準備ができたことになります。UNIXでのリクエスト処理モデルは、Windowsでのモデルとは異なります。
UNIXの場合、複数の子プロセスを管理する親プロセスは1つです。子プロセスは、リクエストの処理を担当します。親プロセスは、構成に基づき、必要に応じて追加の子プロセスを作成します。サーバーでは動的に追加の子プロセスを作成できますが、追加の子プロセスを作成しなくても、リクエストを処理できる十分な子を最初から開始するようにサーバーを構成することが最善策です。
Windowsの場合は、親プロセスと子プロセスが1つずつあります。子プロセスにより、クライアント・リクエストの処理を担当するスレッドが作成されます。作成されるスレッドの数は静的で、構成可能です。
UNIXの場合、デフォルトで、メインのhttpd親プロセスと子プロセスが、Oracle Application Serverをインストールしたユーザーとして実行されるように構成されます。子プロセスに対する権限を設定するには、UserおよびGroupディレクティブを使用します。root
として実行していない場合、これらのディレクティブは無視されます。子プロセスでは、提供されるすべてのコンテンツを読み取ることができる必要があります。
次のディレクティブを使用して、サーバー・プロセスを管理します。
次の2つのオプションが用意されています。どちらのオプションも、UNIXにのみ適用されます。
inetd: リクエストの受信ごとに新規の子プロセスを起動します。リクエストの処理が完了すると、プログラムが終了します。この設定では、複数の子プロセスを待機させるオプションは指定できません。低速で高コストになる場合がありますが、安全性は高まります。このオプションはできるだけ避けてください。
standalone: 複数の子プロセスを待機させることができ、サーバーの起動は1回で済みます。これはビジーなWebサイト向けのデフォルトの推奨設定です。
サーバーでリクエストへのレスポンスに使用するUserとGroupを指定する必要があります。
例: ServerType standalone
サーバーがリクエストへのレスポンスに使用するグループを指定します。このディレクティブを使用するには、スタンドアロン・サーバーをroot
として実行します。サーバーの実行用に新規グループを作成することをお薦めします。このディレクティブはUNIXにのみ適用されます。
例: Group myorg
サーバーがリクエストへのレスポンスに使用するユーザーIDを指定します。このディレクティブを使用するには、スタンドアロン・サーバーをroot
で実行する必要があります。任意のユーザーが使用できるファイルへのアクセス権限が必要ですが、httpdリクエスト用以外のコードは実行できないようにする必要があります。サーバーの実行用に新規ユーザーを設定することをお薦めします。このディレクティブはUNIXにのみ適用されます。
例: User jdoe
次のディレクティブを使用して、クライアント・リクエストの処理方法を構成することにより、Oracle HTTP Serverのパフォーマンスをチューニングします。これらのディレクティブは、httpd.conf
ファイルのGlobal Environmentセクションにあります。
Oracle HTTP Serverの起動時に作成される子サーバー・プロセスの数を設定します。デフォルトでは5に設定されます。このディレクティブはUNIXにのみ適用されます。
例: StartServers 5
リクエストを処理する子スレッドの最大数を制御します。デフォルトでは50に設定されます。このディレクティブはWindowsにのみ適用されます。
例: ThreadsPerChild 50
一度に処理できるリクエスト数を制限します。デフォルト値と推奨値は150です。このディレクティブはUNIXにのみ適用されます。
例: MaxClients 150
子プロセスで終了前に処理されるリクエスト数を制御します。値をデフォルトの0に設定すると、プロセスは終了しません。
Windowsの場合は、0に設定することをお薦めします。0以外の値に設定した場合、リクエスト数が設定値に達すると、その子プロセスは終了し、再生成され、その時点で構成ファイルが再び読み取られます。これにより、構成ファイルを変更したが、その変更をまだ適用しない場合に、予期しない動作が発生する可能性があります。
例: MaxRequestsPerChild 0
アイドル状態の子サーバー・プロセスの最大数を設定します。アイドル・プロセスは、稼働中であってもリクエストを処理していないプロセスです。親プロセスは、このディレクティブの設定値を超えるアイドル状態の子プロセスを中断します。デフォルトでは20に設定されます。このディレクティブはUNIXにのみ適用されます。
例: MaxSpareServers 20
アイドル状態の子サーバー・プロセスの最小数を設定します。アイドル・プロセスは、稼働中であってもリクエストを処理していないプロセスです。アイドル状態のプロセス数が減少すると、親プロセスにより最大で1秒当たり1プロセスの割合で新規の子プロセスが作成されます。デフォルトでは5に設定されます。このディレクティブはUNIXにのみ適用されます。
例: MinSpareServers 5
UNIXで、1024未満のポート上で実行するには、root
として実行する必要があります。
Oracle HTTP Serverをroot
として実行する手順は、次のとおりです。
ORACLE_HOME/opmn/bin> opmnctl [verbose] stopproc ias-component=HTTP_Server
root
ユーザーに変更します。
ORACLE_HOME
/Apache/Apache/bin
にナビゲートし、次のコマンドを実行します。
chown root .apachectl chmod 6750 .apachectl
root
を終了します。
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として動作する場合でも、このユーザーとしてのシステムへのアクセスは十分に保護する必要があります。
Oracle HTTP Serverプロセスを監視するには複数の方法があります。
アプリケーション・サーバーとデータベース間で、ルーターやファイアウォールなどのデバイスにネットワーク・エラーが発生すると、JDBC接続がレスポンスを停止する場合があります。この場合はOracle HTTP Serverを手動で停止する必要があり、プロセスの停止に遅延が生じることがあります。
ps
ユーティリティを使用します。
|
Copyright © 2006 Oracle Corporation. All Rights Reserved. |
|