API インターフェースにより、プロキシー・サーバーの基本機能を拡張できます。 プラグイン (作成するアプリケーション拡張子) の書き込みによって、以下のようにカスタマイズされた処理を実行できます。
基本サーバー要求処理は、その段階でサーバーが実行する処理のタイプに基づいて、いくつかのステップに分けることができます。各ステップには、プログラムの特定パーツを実行できるつながりが組み込まれています。 API ディレクティブを構成ファイルに追加することにより、特定のステップ中にサーバーが呼び出すようにするアプリケーション機能を指示します。要求プロセス・ステップに複数の API ディレクティブを組み込むことにより、そのステップで複数のアプリケーション機能を呼び出すことができます。
コンパイル済みプラグイン・プログラムは、オペレーティング・システムに応じて .DLL ファイル、 .so ファイル、または .o ファイルとなります。サーバーはその要求プロセス・ステップを進んでいるときに、機能の 1 つが要求を処理したことを示すまで、各ステップに関連付けられたプラグイン・アプリケーション機能を呼び出します。複数のプラグイン機能を特定のステップから呼び出すと、それらは構成ファイルに表示される順に呼び出されます。
要求がアプリケーション機能によって完了されていない (アプリケーション機能が指定されなかったか、あるいはそのステップのアプリケーション機能がコード HTTP_NOACTION を戻した) 場合には、サーバーはそのステップのデフォルト・アクションを実行します。 注: これは Service ステップを除くすべてのステップにあてはまります。 Service ステップにはデフォルト・アクションはありません。
要求処理の各ステップごとに構成ディレクティブが存在し、これによりそのステップ中に呼び出して実行するカスタマイズ済みアプリケーション機能を指定できます。
複数プラグイン機能を 1 つの処理ステップから呼び出す場合には、それらのディレクティブの相対順序が重要になる場合があります。ステップ内において、そのステップの機能はリストされた順に実行されます。
NameTrans ディレクティブおよび Service ディレクティブは Exec ディレクティブのように動作し、構成ファイル内の他のマッピング・ディレクティブに関連するオカレンスおよび配置に依存します。これは、 Service 、 NameTrans 、 Map 、 Pass 、 Exec 、 Redirect 、および Fail ディレクティブを構成ファイル内での順序でサーバーが処理することを意味します。 URL がファイルに対して正常にマップされると、その要求の以降のディレクティブは読み取りまたは処理されません。
注: NameTrans および Service ディレクティブは、 Map 、 Pass 、 Exec 、 Redirect 、および Fail ディレクティブと共に、 Request Routing フォームを使用して構成できます。変更前にはこのフォームはデフォルト設定を示し、これらのディレクティブに適した順序で表示されます。
ServerInit | /path/file:function_name | ||
PreExit | /path/file:function_name | ||
Authentication | type | /path/file:function_name | |
NameTrans | /URL | /path/file:function_name | |
Authorization | /URL | /path/file:function_name | |
ObjectType | /URL | /path/file:function_name | |
PostAuth | /path/file:function_name | ||
Service | /URL | /path/file:function_name | |
Transmogrifier | /path/file:open_function_name:write_function_name:close_function_name:error_function_name | ||
Log | /URL | /path/file:function_name | |
エラー | /URL | /path/file:function_name | |
PostExit | /path/file:function_name | ||
ServerTerm | /path/file:function_name | ||
Midnight | /path/file:function_name | ||
PICSDBLookup | /path/file:function_name | ||
GC Advisor | /path/file:function_name | ||
Proxy Advisor | /path/file:function_name |
注: パス変換を行いたい場合には、URL テンプレートは Service ディレクティブで必要になります。