レスポンダーアクションの設定
レスポンダー機能を有効にしたら、要求を処理するための 1 つ以上のアクションを設定する必要があります。レスポンダーは、次のタイプのアクションをサポートします。
-
Respond with. リクエストを Web サーバーに転送せずに、Target 式で定義されたレスポンスを送信します。(NetScaler ADCアプライアンスは、Webサーバーの代わりとして機能し、Webサーバーとして機能します)。このタイプのアクションは、単純な HTML ベースのレスポンスを手動で定義する場合に使用します。通常、応答アクションのテキストは、Web サーバーのエラーコードと簡潔な HTML ページで構成されます。
-
Respond with SQL OK。Target 式で定義された指定された SQL OK レスポンスを送信します。このタイプのアクションは、SQL クエリに SQL OK レスポンスを送信するときに使用します。
-
Respond with SQL Error。Target 式で定義された指定された SQL エラーレスポンスを送信します。この種類のアクションは、SQL クエリに SQL Error 応答を送信するときに使用します。
-
Respond with HTML page。指定された HTML ページをレスポンスとして送信します。以前にアップロードされた HTML ページのドロップダウンリストから選択するか、新しい HTML ページをアップロードできます。このタイプのアクションは、インポートされた HTML ページをレスポンスとして送信するときに使用します。アプライアンスは、responsewithhtmlpage レスポンダアクションのカスタムヘッダーで応答します。最大 8 つのカスタムヘッダーを設定できます。インポートされた HTMLページは
/var/download/responder
ディレクトリに保存されます。 -
Redirect。要求を別の Web ページまたは Web サーバーにリダイレクトします。リダイレクトアクションは、DNS に存在するが、実際のウェブサーバーがない「ダミー」の Web サイトに送信されたリクエストを実際の Web サイトにリダイレクトできます。また、検索リクエストを適切な URL にリダイレクトすることもできます。通常、Redirect アクションのリダイレクトターゲットは完全な URL で構成されます。
CLI を使用してレスポンダーアクションを設定します。
指定されたレスポンダーアクションの現在の設定が表示されます。アクション名を指定しない場合は、NetScaler ADCアプライアンスで現在構成されているすべてのレスポンダーアクションのリストを省略した設定で表示します。
コマンドプロンプトで次のコマンドを入力して、レスポンダーアクションを構成し、構成を確認します。
add responder action <name> <type> <target>
show responder action
パラメーター:
-
Name:レスポンダーアクションの名前。 最大長:127
-
type。レスポンダーアクションのタイプ。これは:(respondwith) とすることができます。
-
ターゲット。何で応答するかを指定する式。
-
htmlpage。 HTML ページで応答することを指定するオプション。
-
hits. アクションが実行された回数。
-
referenceCount. アクションへの参照の数。
-
undefHits. アクションが UNDEF になった回数。
-
comment. このレスポンダーアクションに関するあらゆる種類の情報。
-
builtin. レスポンダーアクションが組み込まれているかどうかを決定するフラグ。
例:
Create a responder action that displays a “Not Found” error page for URLs that do not exist:
> add responder action act404Error respondWith '"HTTP/1.1 404 Not Found\r\n\r\n"+ HTTP.REQ.URL.HTTP_URL_SAFE + " does not exist on the web server."'
Done
> show responder action
1) Name: act404Error
Operation: respondwith
Target: "HTTP/1.1 404 Not Found" + HTTP.REQ.URL.HTTP_URL_SAFE + " does not exist on the web server."
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
Create a responder action that displays a “Not Found” error page for URLs that do not exist:
add responder action act404Error respondWith '"HTTP/1.1 404 Not Found\r\n\r\n"+ HTTP.REQ.URL.HTTP_URL_SAFE + " does not exist on the web server."'
Done
> show responder action
1) Name: act404Error
Operation: respondwith
Target: "HTTP/1.1 404 Not Found" + HTTP.REQ.URL.HTTP_URL_SAFE + " does not exist on the web server."
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
<!--NeedCopy-->
CLI を使用して既存のレスポンダーアクションを変更します。
コマンドプロンプトで次のコマンドを入力して、既存のレスポンダーアクションを変更し、構成を確認します。
set responder action <name> -target <string>
show responder action
例:
set responder action act404Error -target '"HTTP/1.1 404 Not Found\r\n\r\n"+ HTTP.REQ.URL.HTTP_URL_SAFE + " does not exist on the web server."'
Done
> show responder action
1) Name: act404Error
Operation: respondwith
Target: "HTTP/1.1 404 Not Found" + HTTP.REQ.URL.HTTP_URL_SAFE + " does not exist on the web server."
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
<!--NeedCopy-->
CLI を使用してレスポンダーアクションを削除します。
コマンドプロンプトで次のコマンドを入力して、レスポンダーアクションを削除し、構成を確認します。
rm responder action <name>
show responder action
例:
rm responder action act404Error
Done
> show responder action
Done
<!--NeedCopy-->
CLI を使用して htmlpage レスポンダーアクションでレスポンスにカスタムヘッダーを追加します。
NetScaler ADCアプライアンスは、responsewithhtmlpageレスポンダーアクションでカスタムヘッダーで応答できるようになりました。最大 8 つのカスタムヘッダーを設定できます。以前は、アプライアンスはContent-type:text/html
およびContent-Length:<value>
静的ヘッダーのみで応答していました。
注:
カスタムヘッダー設定では、「Content-Type」ヘッダー値を上書きすることもできます。
コマンドプロンプトで、次のコマンドを入力します。
add responder action <name> <type> (<target> | <htmlpage>) [-comment <string>] [-responseStatusCode <positive_integer>] [-reasonPhrase <expression>] [-headers <name(value)> ...]
各項目の意味は次のとおりです。
名前: レスポンダーアクションの名前。文字、数字、またはアンダースコア文字 (_) で始まり、文字、数字、およびハイフン (-)、ピリオド (.) ハッシュ (#)、スペース ()、アットマーク (@)、等号 (=)、コロン (:)、およびアンダースコア文字のみを含める必要があります。レスポンダーポリシーの追加後に変更できます。
タイプ: レスポンダーアクションのタイプ。使用可能な設定は次のように機能します。
-
respondwith
<target>
-ターゲットとして指定された式でリクエストに応答します。 - respondwithhtmlpage -アップロードされた HTML ページオブジェクトをターゲットとして指定してリクエストに応答します。
- redirect -ターゲットとして指定された URL にリクエストをリダイレクトします。
- sqlresponse_ok-SQL OK レスポンスを送信します。
-
sqlresponse_error -SQL エラーレスポンスを送信します。これは必須の議論です。指定可能な値:
noop
、respondwith
、redirect
、respondwithhtmlpage
、sqlresponse_ok
、sqlresponse_error
ターゲット: 何で応答するかを指定する式。通常は、リダイレクトポリシーの URL またはデフォルトの構文式です。 リクエスト内の情報を参照するNetScaler ADCのデフォルト構文式に加えて、文字列ビルダ式にはテキストとHTML、および新しい行や段落を定義する単純なエスケープコードを含めることができます。各ストリングビルダーの式要素(NetScaler のデフォルト構文式または文字列)を二重引用符で囲みます。プラス (+) 文字を使用して要素を結合します。
htmlpage:respondwithhtmlpage
ポリシーの場合、レスポンスとして使用する HTML ページオブジェクトの名前。最初にページオブジェクトをインポートする必要があります。最大長:31
コメント: このレスポンダーアクションに関するあらゆる種類の情報。最大長:255
responseStatusCode: HTTP レスポンスステータスコード (200、302、404 など) redirect action
タイプの
デフォルト値は302で、respondwithhtmlpage
は200です。最小値:100 最大値:599
理由フレーズ: HTTP 応答の理由フレーズを指定する式。理由句は、引用符付きの文字列リテラルまたは PI 式です。たとえば、次のようになります:"Invalid URL: " + HTTP.REQ.URL Maximum Length: 8191
ヘッダー: HTTP レスポンスに挿入する 1 つ以上のヘッダー。各ヘッダーは"name(expr),"
のように指定されます。exprは実行時に評価され、指定されたヘッダーの値を提供する式です。レスポンダーアクションには最大 8 つのヘッダーを設定できます。
GUI を使用してレスポンダーアクションを設定します。
- AppExpert > レスポンダー > アクションに移動します。
- 詳細ウィンドウで、次のいずれかの操作を行います。
- アクションを作成するには、[ 追加] をクリックします。
- 既存のアクションを変更するには、アクションを選択し、[ 開く] をクリックします。
- アクションを作成するか 、既存のアクションを修正するかに応じて、「作成」または 「OK」をクリックします。
- [閉じる] をクリックします。ステータスバーに、機能が有効になっていることを示すメッセージが表示されます。
- レスポンダーアクションを削除するには、アクションを選択し、[ 削除] をクリックします。ステータスバーに、機能が無効になったことを示すメッセージが表示されます。
[ 数式の追加] ダイアログボックスを使用して式を追加します
-
[ レスポンダーアクションの作成 ] または [ レスポンダーアクションの構成 ] ダイアログボックスで、[ 追加] をクリックします。
- [ 式の追加 ] ダイアログボックスの最初のリストボックスで、式の最初の用語を選択します。
- HTTP HTTP プロトコル。HTTP プロトコルに関連するリクエストの側面を調べる場合は、これを選択します。
- SYS。1 つ以上の保護された Web サイト。リクエストの受信者に関連するリクエストの側面を調べる場合は、これを選択します。
- CLIENT. 要求を送信したコンピュータ。リクエストの送信者の側面を調べる場合は、これを選択します。
- ANALYTICS. リクエストに関連付けられた分析データ。リクエストメタデータを調べる場合は、これを選択します。
- SIP. SIP 要求。SIP 要求の一部の側面を調べる場合は、これを選択します。選択すると、右端のリストボックスに、式の次の部分に適した用語がリストされます。
- 2 番目のリストボックスで、式の 2 番目の用語を選択します。選択肢は、前のステップで行った選択によって異なり、コンテキストに適切です。2 番目の選択を行った後、[式の構築] ウィンドウの下のヘルプウィンドウ (空白) に、選択した用語の目的と使用法を説明するヘルプが表示されます。
- 式が終了するまで、前のリストボックスの右側に表示されるリストボックスから用語を選択するか、値の入力を求めるテキストボックスに文字列または数値を入力します。
グローバル HTTP アクションの設定
HTTP 要求がタイムアウトしたときにレスポンダアクションを呼び出すように、グローバル HTTP アクションを設定できます。この機能を設定するには、最初に呼び出すレスポンダーアクションを作成する必要があります。次に、そのレスポンダーアクションでタイムアウトに応答するようにグローバル HTTP タイムアウトアクションを設定します。
CLI を使用してグローバル HTTP アクションを設定します。
コマンドプロンプトで、次のコマンドを入力します。
set ns httpProfile -reqTimeoutAction <responder action name>
save ns config
<responder action name>
については、レスポンダーアクションの名前を置き換えてください。
HTML ページのインポートの設定
NetScaler ADCアプライアンスがカスタムメッセージで応答すると、HTMLファイルで応答できます。import responder htmlpage
コマンドを使用してファイルをインポートし、 このファイルをadd responder action <act name> respondwithhtmlpage <file name>
コマンドで使用することができます。NetScaler GUIを使用してファイルをインポートすることもできます。目的の HTML ページをアプライアンスフォルダにインポートし、レスポンダの実行時にページをアップロードできます。
CLI を使用して HTML ページをインポートする
コマンドプロンプトで入力します。
import responder htmlpage [<src>] <name> [-comment <string>] [-overwrite][-CAcertFile <string>]
例:
import responder htmlpage http://www.example.com/page.html my-responder-page -CAcertFile my_root_ca_cert
ここで、
CA 証明書はクライアント証明書の検証に使用されます。証明書は import ssl certfile
CLI コマンドを使用するか、API または GUI を使用して同等のコマンドをインポートする必要があります。証明書名が設定されていない場合、証明書の検証にはデフォルトのルート CA 証明書が使用されます。
ローカルファイルシステムから HTML ページをインポートする
ローカルファイルシステムから HTML ページをインポートすることもできます。インポートするには、SCP またはその他の方法でファイルを /var/tmp/ ディレクトリにコピーし、「local:」キーワードを使用してインポートします。次に例を示します:
import responder htmlpage local:my_local_file.html my_local_file
my_local_file.html
は「/var/tmp/」ディレクトリに存在します。
注意
:「local:」キーワードは「/var/tmp/」ディレクトリ内のファイルのみを検索します。デフォルト以外のパーティションの場合は、
/var/partitions/<partition name>/tmp
にあるパーティション固有の tmp ディレクトリにファイルをコピーする必要があります。
GUI を使用して HTML ページをインポートする
- [ AppExpert ] > [ レスポンダー ] > [ HTML ページのインポート]に移動します。
- [ レスポンダー HTML のインポート ] 詳細ウィンドウで、[ 追加] をクリックします。
-
HTML ページのインポートオブジェクトページで 、次のパラメータを設定します。
- [名前]。HTML ページの名前。
- インポート元。ファイル、テキスト、またはテキストから読み込まれます。
- URL。HTML ファイルの URL の場所を入力するを選択します。
- [ファイル]。アプライアンスディレクトリから HTML ファイルを選択します。
- テキスト。 HTML ファイルをテキストとして選択します。
- [続行] をクリックします。
- レスポンダーの HTML ページの詳細を確認します。
-
[完了] をクリックします。
HTML ページを編集するには、ファイルを選択し、[ アクションの選択 ] ドロップダウンリストから [ レスポンダー HTML ページファイルの編集 ] をクリックします。