タイムアウトは、サーバーのパフォーマンスに大きく影響します。Proxy Server に対して最適なタイムアウトを設定することは、ネットワークリソースの節約に役立ちます。
2 つのインスタンス固有の SAF (サーバーアプリケーション関数) と、1 つのグローバルパラメータを使用して、Proxy Server 内のタイムアウト値を設定することができます。
init-proxy() 関数は、Proxy Server の内部設定を初期化します。この関数は Proxy Server の初期化時に呼び出されますが、値が正しく初期化されるように obj.conf ファイル内で指定する必要もあります。
この関数の構文は次のとおりです。
Init fn=init-proxy timeout=seconds timeout-2=seconds
上の例では、次のパラメータを、init-proxy SAF の Proxy Server タイムアウト設定に直接適用することができます。
timeout (プロキシタイムアウト)– プロキシタイムアウトパラメータは、アイドル接続を中断するまでのサーバーの待機時間を指示します。プロキシのタイムアウトを高く設定すると、時間のかかるプロキシスレッドによってクライアントが長時間停止させられる可能性があります。タイムアウト値を低く設定すると、結果が出るまでに時間のかかる CGI スクリプト (データベースクエリーゲートウェイなど) が中断されてしまいます。
サーバーに対して最適なプロキシタイムアウトを決定するには、次の問題について検討します。
Proxy Server は、多数のデータベースクエリーや CGI スクリプトを処理するか。
Proxy Server の処理する要求数が少なく、常に 1 つのプロセスに時間を割くことができるか。
上のどちらの質問に対する答えも「はい」である場合は、プロキシタイムアウトに高い値を設定することになります。プロキシタイムアウトの推奨される最高値は 1 時間です。デフォルト値は 300 秒 (5 分) です。
サーバーマネージャーの「Preferences」タブにある「Configure System Preferences」ページにアクセスすると、プロキシタイムアウトの値を表示または変更できます。このパラメータは、「Proxy Timeout」として参照されます。
timeout-2 (中断後のタイムアウト)– 中断後のタイムアウト値は、クライアントがトランザクションを中断した後、キャッシュファイルに書き込みを続行する必要のある時間を Proxy Server に指示します。つまり、Proxy Server がドキュメントのキャッシュをほぼ終了していて、クライアントが接続を中断した場合、サーバーは、中断後のタイムアウト値に達するまでドキュメントのキャシュを続行することができます。
推奨される中断後のタイムアウトの最高値は 5 分です。デフォルト値は 15 秒です。
http-client-config 関数は、Proxy Server の HTTP クライアントを設定します。
この関数の構文は次のとおりです。
Init fn=http-client-config keep-alive=(true|false) keep-alive-timeout=seconds always-use-keep-alive=(true|false) protocol=HTTP Protocol proxy-agent="Proxy-agent HTTP request header"
設定値は次のように定義されます。
keep-alive– (オプション) HTTP クライアントが持続的接続を使用するかどうかを示すブール値。デフォルトは true です。
keep-alive-timeout– (オプション) 持続的接続を開いたままにしておく最大秒数。デフォルトは 29 です。
always-use-keep-alive– (オプション) すべてのタイプの要求に対して HTTP クライアントが既存の持続的接続を再使用できるかどうかを示すブール値。デフォルトは false です。つまり、GET 以外の要求またはボディーを含む要求に対しては、持続的接続は再使用されません。
protocol– (オプション) HTTP プロトコルバージョンの文字列。デフォルトでは、HTTP クライアントは、HTTP 要求のコンテンツによって HTTP/1.0 か HTTP/1.1 のどちらかを使用します。プロトコルの相互運用について特定の問題が発生しないかぎり、protocol パラメータは使用しないでください。
proxy-agent– (オプション) Proxy-agent HTTP 要求ヘッダーの値。デフォルトは、Proxy Server の製品名とバージョンを含む文字列です。
KeepAliveTimeout() パラメータは、サーバーが、クライアントと Proxy Server 間の HTTP keep-alive 接続または持続的接続を開いたままにしておく最大時間 (秒) を決定します。デフォルトは 30 秒です。アイドル時間が 30 秒を超えると、接続が切断されます。最大値は 300 秒 (5 分) です。
magnus.conf ファイル内のタイムアウト設定は、クライアントと Proxy Server 間の接続に適用されます。obj.conf ファイル内の http-client-config SAF にあるタイムアウト設定は、Proxy Server と配信元サーバー間の接続に適用されます。