Citrix ADC

レスポンダポリシを持gRPC

レスポンダー付きのgRPCポリシー構成では,Citrix ADCアプライアンスがHTTP / 2プロトコルを介してgRPC要求に対して異なる応答を提供する方法について説明します。ユーザーがWebサイトのホームページを要求するときは,各ユーザーの場所やユーザーが使用しているブラウザーに応じて,異なるホームページを提供することをお勧めします。

次の図は,相互作用するコンポネントを示しています。

レスポンダポリシを持gRPC

  1. アプラ邮箱アンスでレスポンダ機能を有効にします。
  2. カスタム応答を生成する,要求を別のWebページにリダイレクトする,または接続をリセットするようにレスポンダーアクションを構成します。
  3. アクションを実行する必要があるgRPC要求(トラフィック)を決定するためのレスポンダーポリシーを構成します。
  4. レスポンダーポリシーを負荷分散仮想サーバーにバインドして,トラフィックがポリシー式に一致するかどうかを調べます。
  5. レスポンダポリシを使用すると,gRPCステドに基づいて以下を実行できます。

CLIを使用してgRPCコル終了をレスポンダポリシで設定します

レスポンダポリシを使用してgRPCコルの終了を設定するには,次の手順を実行する必要があります。

  1. レスポンダ機能を有効にする
  2. レスポンダアクションを追加する
  3. レスポンダポリシを追加し,レスポンダアクションを関連付ける
  4. レスポンダポリシを負荷分散仮想サ

レスポンダ機能を有効にする

レスポンダ機能を使用するには,最初にそれを有効にする必要があります。

コマンドプロンプトで入力します。

使ns响应者

レスポンダアクションを追加する

この機能を有効にした後,バックエンドサーバーから返されたステータスコードに基づいてgRPC応答を処理するためのレスポンダーアクションを構成する必要があります。

コマンドプロンプトで入力します。

添加响应器动作<名称> <类型>

例:

add responder action grpc-act respondwith "HTTP/1.1 200 OK\r\nServer: NS-Responder\r\nContent-Type:application/grpc\r\ngrpc-status: 12\r\ngrpc-message: Not Implemented\r\n\r\n" + "Method: " + HTTP. req . req . "URL+“没有实现”。

レスポンダポリシの追加

レスポンダーのアクションを構成したら,次にレスポンダーポリシーを構成して,Citrix ADCアプライアンスが応答するgRPCリクエストを選択する必要があります。

コマンドプロンプトで入力します。

add responder policy []-appFlowaction .使用实例例:

添加响应器策略grpc- rep -pol1 HTTP.REQ.URL.NE(" /helloworld.Greeter/SayHello "

レスポンダポリシを負荷分散仮想サ

ポリシーを有効にするには,gRPCサービスを使用してポリシーを負荷分散仮想サーバーにバインドする必要があります。

コマンドプロンプトで入力します。

bind responder global [ [-type ] [-invoke ( )]

例:

bind lb vserver lb-grpc svc-grpc -policyName grpc- respo -pol1 -priority 100

レスポンダポリシの詳細にいては,”レスポンダレスポンダポリシトピックを参照してください。

gRPCプロトコルバッファフィルドを照合するためのポリシ式

Citrix ADCアプラアンスは,gRPC構成で次のポリシトしています。

  • gRPCプロトコルバッファフィルドアクセス。任意のgRPC API呼び出しは,メッセ。PI構成では,一致は"フィルド番号"と" apiパス"のみを使用して行われます。

  • gRPCヘッダフィルタリング。gRPCの“HttpProfileパラメータは,gRPC解析のデフォルトの動作(gRPCポリシー式を含む)を調整するために使用されます。gRPCポリシ式には,次のパラメタが適用されます。

    • gRPCLengthDelimitation。これはデフォルトで有効になっており,プロトコルバッファに長さ区切りのメッセージが表示されることを想定しています。

    • grpCholdLimit。デフォルト値は131072です。これは,プロトコルバッファメッセ。また,文字列の最大長と最大' byte 'フィ。

CLIを使用してgRPCアドバンスポリシ式を設定します

コマンドプロンプトで入力します。

set ns httpProfile  -http2 (ENABLED | DISABLED) - grpclengthdelimination (ENABLED | DISABLED) -gRPCHoldLimit  . httpProfile  -http2 (ENABLED | DISABLED) - grpclengthdelimination (ENABLED | DISABLED) -gRPCHoldLimit  . httpProfile

例:

设置ns httpProfile http2gRPC -http2 ENABLED -gRPCLengthDelimitation ENABLED -gRPCHoldLimit 131072

GUI界面を使用してgRPCヘッダフィルタリングパラメタを設定する

  1. 系统>概要文件に移動してHTTP配置文件をクリックします。

  2. HTTPプロファルの作成ペジで,[HTTP / 3セクションまでスクロルダウンし,[gRPCの長さの区切りを選択します。

    gRPCの長さの区切り

次のポリシー式の例は,メッセージ5サブメッセージ4,およびフィールド3の値を示しています。これは2に等しい32ビットのintです。

http.req.body (1000) .grpc.message (5) .message (4) .int32 (3) .eq (2)

gRPCプロトコルバッファメッセージフィールドを番号で照合するために,次のポリシー式が追加されます。

  • 消息
  • ダブル
  • フロト
  • int32
  • int64
  • uint32
  • uint64
  • sint64
  • sint32
  • fixed32
  • fixed64
  • sfixed32
  • sfixed64
  • 保龄球
  • 字符串
  • 列挙型
  • 字节

APIパスマッチング

APIパスマッチングは,複数のAPIが使用されている場合に,正しいgRPC API呼び出しを照合するために使用されます。APIパスと一致します。これはHTTPリクエストの':路径'疑似ヘッダにあります。

例:

http.req.header(“路径”):.eq(“acme.inventory.v1 / ListBooks”)
レスポンダポリシを持gRPC