Citrix ADC ingress controller

HTTP ユースケース

このトピックでは、Citrix イングレスコントローラーのアノテーションを使用して Ingress Citrix ADC で構成できるさまざまな HTTP ユースケースについて説明します。

次の表に、HTTP のユースケースとサンプルアノテーションを示します。

使用例 サンプル注釈
HTTP/2 を構成する ingress.citrix.com/frontend-httpprofile: '{"http2":"enabled"}'
  ingress.citrix.com/backend-httpprofile: '{"apache":{"http2direct" : "enabled"}'
  ingress.citrix.com/backend-httpprofile: '{"apache":{"http2direct" : "enabled", "altsvc":"enabled"}'
HTTP セッションタイムアウトの処理 ingress.citrix.com/frontend-httpprofile: '{"apache":{"reqtimeout" : "10", "reqtimeoutaction":"drop"}}'
  ingress.citrix.com/frontend-httpprofile: '{"apache":{"reqtimeout" : "10", "adptimeout" : "enable"}}'
  ingress.citrix.com/backend-httpprofile: '{"apache":{"reusepooltimeout" : "20000"}}'

HTTP/2 を構成する

クライアント側とサーバー側のIngress Citrix ADC HTTP/2。詳しくは、「Citrix ADCでのHTTP/2サポート」を参照してください。Ingress Citrix ADC の HTTP 負荷分散構成では、次のいずれかの方法を使用して HTTP/2 を使用してクライアント/サーバーとの通信を開始します。

Ingress Citrix ADCは、HTTP/2メソッド用のHTTPプロファイルで構成可能なオプションを提供します。これら HTTP/2 オプションは、HTTPSまたはHTTP負荷分散セットアップのサーバー側だけでなくクライアント側にも適用できます。Citrix イングレスコントローラーは、Ingress Citrix ADC で HTTP プロファイルを構成するための注釈を提供します。これらの注釈を使用して、HTTP/2 を使用してクライアント/サーバーと通信するように Ingress Citrix ADC でさまざまな HTTP 負荷分散構成を構成します。

注:

Ingress Citrix ADC で HTTP/2 サービス側グローバルパラメータ(http2ServerSide)が有効になっていることを確認します。詳細については、nshttpparam を参照してください。

HTTP/2 アップグレード

この方法では、クライアントが HTTP/1.1 リクエストをサーバーに送信します。リクエストにはアップグレードヘッダーが含まれており、HTTP/2 への接続をサーバーにアップグレードするように要求します。サーバーが HTTP/2 をサポートしている場合、サーバーはアップグレード要求を受け入れ、応答で通知します。クライアントとサーバは、クライアントがアップグレード確認応答を受信した後、HTTP/2 を使用して通信を開始します。

HTTP プロファイルの注釈を使用して、Ingress Citrix ADC で HTTP/2 アップグレード方法を構成できます。Ingress Citrix ADCでHTTP/2アップグレード方法を構成するためのHTTPプロファイルの注釈の例を次に示します。

ingress.citrix.com/frontend-httpprofile: '{"http2":"enabled"}'

ダイレクト HTTP/2

この方法では、HTTP/2 アップグレード方式を使用する代わりに、クライアントが HTTP/2 でサーバーと直接通信を開始します。サーバーが HTTP/2 をサポートしていない場合、または HTTP/2 要求を直接受け付けるように構成されていない場合、クライアントからの HTTP/2 パケットはドロップされます。この方法は、クライアントデバイスの管理者が、サーバーが HTTP/2 をサポートしていることをすでに知っている場合に役立ちます。

HTTPプロファイルの注釈を使用して、Ingress Citrix ADCで直接HTTP/2方式を構成できます。Ingress Citrix ADC でダイレクト HTTP/2 メソッドを構成するための HTTP プロファイルのサンプルアノテーションを次に示します。

ingress.citrix.com/backend-httpprofile: '{"apache":{"http2direct" : "enabled"}'

代替サービス (ALT-SVC) を使用した直接 HTTP/2

この方法では、サーバーは HTTP/1.1 応答に代替サービス (ALT-SVC) フィールドを含めることで、HTTP/2 をサポートしていることをクライアントに通知します。クライアントが ALT-SVC フィールドを認識するように設定されている場合、クライアントとサーバは、クライアントが応答を受信した後、HTTP/2 を使用して直接通信を開始します。

Ingress Citrix ADC で代替サービス(ALT-SVC)メソッドを使用してダイレクト HTTP/2 を構成するための HTTP プロファイルの注釈の例を次に示します。

ingress.citrix.com/backend-httpprofile: '{"apache":{"http2direct" : "enabled", "altsvc":"enabled"}'

HTTP セッションタイムアウトの処理

異なるタイプの HTTP リクエストを処理し、Slowloris DDoS 攻撃などの攻撃を緩和するため。この攻撃では、クライアントで制限が必要な接続が開始されます。Ingress Citrix ADC では、これらのシナリオに対して次のタイムアウトを構成できます。

  • reqTimeout と reqTimeoutA
  • adptTeout
  • reusePoolTimeout

reqTimeout と reqTimeoutA

Citrix ADC では、HTTP プロファイルの reqTimeout およびreqTimeoutAction パラメーターを使用して、HTTP 要求タイムアウト値と要求タイムアウトアクションを構成できます。 reqTimeout 値は秒単位で設定され、HTTP リクエストはreqTimeoutパラメータで指定された時間内に完了する必要があります。HTTP 要求が定義した時間内に完了しなかった場合は、 reqTimeoutAction で指定された要求タイムアウトアクションが実行されます。設定できる最小タイムアウト値は 0 で、最大値は 86400 です。デフォルトでは、タイムアウト値は 0 に設定されています。

reqTimeoutAction パラメーターを使用すると、HTTP リクエストのタイムアウト値 (reqTimeout) が経過した場合に実行する必要のあるアクションのタイプを指定できます。次のアクションを指定できます。

  • RESET
  • DROP

HTTP プロファイルの注釈を使用して、HTTP 要求タイムアウトと HTTP 要求タイムアウトアクションを設定できます。Ingress Citrix ADCでHTTP要求タイムアウトとHTTP要求タイムアウトアクションを構成するためのHTTPプロファイルの注釈の例を次に示します。

ingress.citrix.com/frontend-httpprofile: '{"apache":{"reqtimeout" : "10", "reqtimeoutaction":"drop"}}'

adptTeout

要求されたセッションに設定されたタイムアウト値を使用する代わりに、adptTimeoutを有効にすることもできます 。 adptTimeoutパラメータは、フロー条件に従ってリクエストのタイムアウトを調整します。有効にすると、要求タイムアウトは内部的に増減され、フローに適用されます。デフォルトでは、このパラメーターは DISABLED に設定されています。

HTTP プロファイルにアノテーションを使用すると、 以下のようにadpttimeoutパラメータを有効または無効にできます。

ingress.citrix.com/frontend-httpprofile: '{"apache":{"reqtimeout" : "10", "adptimeout" : "enable"}}'

reusePoolTimeout

再利用プールのタイムアウト値を設定して、アイドル状態のサーバ接続を再利用プールからフラッシュできます。設定した時間だけサーバがアイドル状態の場合、対応する接続がフラッシュされます。

設定できる最小タイムアウト値は 0 で、最大値は 31536000 です。デフォルトでは、タイムアウト値は 0 に設定されています。

HTTP プロファイルの注釈を使用すると、必要なタイムアウト値を次のように構成できます。

ingress.citrix.com/backend-httpprofile: '{"apache":{"reusepooltimeout" : "20000"}}'
HTTP ユースケース