Citrix ADC

HTTP/2構成

注: HTTP/2機能は、Citrix ADC MPX、VPX、SDXの各モデルでサポートされています。Citrix ADC VPXアプライアンスでは、 HTTP/2 機能は11.0リリース以降でサポートされています。

Webアプリケーションのパフォーマンスの問題は、ページサイズとWebページ上のオブジェクトの数を増やす傾向に直接関係しています。HTTP/1.1 は、現在一般的であるよりも小さいWebページ、低速のインターネット接続、およびより制限されたサーバーハードウェアをサポートするために開発されました。JavaScriptやカスケードスタイルシート(CSS)などの新しいテクノロジーや、Flashビデオやグラフィックが豊富な画像などの新しいメディアタイプには適していません。これは、サーバーへの接続ごとに1つのリソースしか要求できないためです。この制限により、ラウンドトリップの数が大幅に増加し、ページのレンダリングが長くなり、ネットワークパフォーマンスが低下します。

HTTP/2 プロトコルは、ネットワークを介して送信されるデータを減らして通信を実行できるようにし、単一の接続を介して複数の要求と応答を送信する機能を提供することにより、これらの制限に対処します。その核となるのは、 HTTP/2 の主な制限に対処します HTTP/1.1 基盤となるネットワーク接続をより効率的に使用する。これにより、要求と応答がネットワーク上を移動する方法が変わります。

HTTP/2 はバイナリプロトコルです。HTTP/1.1のようなテキストプロトコルと比較して、解析がより効率的で、ネットワーク上でよりコンパクトになり、最も重要なこととして、エラーが発生しにくくなります。 HTTP/2 プロトコルは、フレームタイプと、HTTPメッセージがクライアントとサーバー間でカプセル化および転送される方法を定義するバイナリフレーミングレイヤーを使用します。 HTTP/2 機能は、単一のを介してトンネル接続を確立するためのCONNECTメソッドの使用をサポートします HTTP/2 リモートホストにストリーミングします。

HTTP/2 プロトコルには、特にモバイルネットワークを介して接続するクライアントのパフォーマンスを大幅に向上させる、パフォーマンスを向上させる多くの変更が含まれています。

次の表に、HTTP/1.1からHTTP/2 の主な改善点を示します。

HTTP/2 機能 説明
ヘッダー圧縮 HTTPヘッダーには多くの反復情報があるため、データ送信中に不要な帯域幅を消費します。HTTP/2 ヘッダーを圧縮し、要求と応答ごとにHTTPヘッダーを転送する要件を最小限に抑えることで、帯域幅の要件を削減します。
接続の多重化 待ち時間は、ページの読み込み時間とエンドユーザーエクスペリエンスに大きな影響を与える可能性があります。接続の多重化は、単一の接続を介して複数の要求と応答を送信することにより、この問題を克服します。
サーバープッシュ サーバープッシュにより、サーバーはコンテンツをクライアントブラウザーにプロアクティブにプッシュし、ラウンドトリップ遅延を回避できます。この機能は、クライアントが必要と考える応答をキャッシュし、ラウンドトリップの数を減らし、ページのレンダリング時間を改善します。重要:Citrix ADCアプライアンスは、サーバープッシュ機能をサポートしていません。
ヘッドオブラインブロッキングなし HTTP/1.1で ブラウザは、接続ごとに一度に1つのリソースをダウンロードできます。ブラウザが大きなリソースをダウンロードする必要がある場合、最初のダウンロードが完了するまで、他のすべてのリソースのダウンロードをブロックします。HTTP/2 多重化アプローチでこの問題を克服します。これにより、クライアントブラウザは、同じ接続を介して他のWebコンポーネントを並行してダウンロードし、利用可能になったときにそれらを表示できます。
優先順位付けをリクエストする ブラウザがWebページをレンダリングするときに、すべてのリソースが同じ優先順位を持つわけではありません。読み込み時間を短縮するために、最近のすべてのブラウザーは、アセットのタイプ、ページ上の位置、さらには以前のアクセスから学習した優先度によってリクエストに優先順位を付けます。HTTP/1.1でこのプロトコルは多重化をサポートしておらず、サーバーによる要求の優先順位付けを伝達する方法がないため、ブラウザーは優先順位データを使用する機能が制限されています。その結果、不要なネットワーク遅延が発生します。HTTP/2 ブラウザがすべてのリクエストをディスパッチできるようにすることで、この問題を克服します。ブラウザは、ストリームの依存関係と重みを介してストリームの優先順位設定を伝達できるため、サーバーは応答の配信を最適化できます。重要:Citrix ADCアプライアンスは、要求の優先順位付け機能をサポートしていません。

どうやって HTTP/2が動作するか

CitrixADCアプライアンスはクライアント側でもサーバー側でも HTTP/2 をサポートします。クライアント側では、CitrixADCアプライアンスは HTTP/2のHTTP/HTTPS仮想サーバー をホストするサーバーとして動作します。バックエンド側では、CitrixADCは仮想サーバーにバインドされているサーバーのクライアントとして機能します。

したがって、Citrix ADCアプライアンスは、クライアント側とサーバー側で別々の接続を維持します。Citrix ADCアプライアンスには個別の HTTP/2 クライアント側とサーバー側の構成。

HTTP/2 HTTPS(SSL)負荷分散構成の場合

HTTPSロードバランシング構成の場合、Citrix ADCアプライアンスはTLS ALPN拡張機能(RFC 7301)を使用して、クライアント/サーバーがHTTP/2をサポート するか決定します。サポートする場合、アプライアンスは HTTP/2 (RFC 7540-セクション3.3で説明されているように)クライアント/サーバー側で鵜データを送信するためのアプリケーション層プロトコルとして選択します。 アプライアンスは、TLS ALPN拡張を使用してアプリケーション層プロトコルを選択する際に、次の優先順位を使用します。

  • HTTP/2 (HTTPプロファイルで有効になっている場合)
  • SPDY(HTTPプロファイルで有効になっている場合)
  • HTTP/1.1

HTTP/2 HTTP負荷分散構成の場合

HTTP負荷分散構成の場合、Citrix ADCアプライアンスは次のいずれかの方法を使用してクライアント/サーバーとHTTP/2を使用して 通信します。

注:

以下のメソッドの説明では、クライアントとサーバーはHTTP/2 接続の一般的な用語です。たとえば、を使用したCitrixADCアプライアンスの負荷分散セットアップの場合 HTTP/2, Citrix ADCアプライアンスは、クライアント側でサーバーとして機能し、サーバー側でクライアントとして機能します。

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

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

  • 直接HTTP/2 代替サービス(ALT-SVC)を使用します。サーバーは、HTTP/2 代替サービス(ALT-SVC)フィールドをHTTP/1.1応答に含めることでHTTP/2をクライアントに対してサポートしていることをアドバタイズします 。クライアントとサーバーはクライアントが応答を受信した後、クライアントがALT-SVCフィールドを理解するように構成されている場合、HTTP/2を使用して直接通信を開始します。

Citrix ADCアプライアンスは、HTTPプロファイルで構成可能なオプションを提供します。 HTTP/2 メソッド。これら HTTP/2 オプションは、HTTPSまたはHTTP負荷分散セットアップのサーバー側だけでなくクライアント側にも適用できます。の詳細については HTTP/2 メソッドとオプションについては、HTTP/2 オプション PDFを参照してください。

はじめに

構成を開始する前に HTTP/2 Citrix ADCアプライアンスでは、次の点に注意してください。

  • Citrix ADCアプライアンスはクライアント側とサーバー側でHTTP/2をサポートします。
  • Citrix ADCアプライアンスはHTTP/2サーバープッシュ機能をサポートしません。
  • Citrix ADCアプライアンスは HTTP/2要求優先付け機能をサポートしません。
  • Citrix ADCアプライアンスはHTTPS負荷分散環境でHTTP/2 SSLの再ネゴシエーションをサポートしません。
  • CitrixADCアプライアンスはHTTP/2 NTLM認証をサポートしていません 。
  • HTTP/2 Citrix ADCアプライアンスでユーザーソースIP(USIP)モードが有効になっていて、プロキシモードが無効になっている場合は機能しません。

HTTP/2の構成

ロードバランシング設定(HTTPS またはHTTP)の HTTP/2 の設定は、次の作業で構成されます。

  • HTTP/2を有効にしてオプションのHTTP/2パラメーターをHTTP Profileに設定します。HTTP プロファイルで HTTP/2 を有効にします。有効にするだけの場合 HTTP/2 HTTPプロファイルでは、Citrix ADCアプライアンスはアップグレード方法(HTTPの場合)またはTLS ALPN 方法(HTTPSの場合)のみを使用して通信します。 HTTP/2.

    CitrixADCアプライアンスが直接使用する場合 HTTP/2 メソッド、 直接 HTTP/2 オプションはHTTPプロファイルで有効にする必要があります。CitrixADCアプライアンスが直接使用する場合 HTTP/2 代替サービス方式を使用する場合は、HTTPプロファイルで 代替サービス(altsvc) オプションを有効にする必要があります。

  • HTTPプロファイルを仮想サーバーまたはサービスにバインドします。HTTPプロファイルを仮想サーバーにバインドして、負荷分散セットアップのクライアント側のHTTP2を構成します。HTTPプロファイルをサービスにバインドして、負荷分散セットアップのサーバー側のHTTP2を構成します。

注:

クライアント側とサーバー側で別々のHTTPプロファイルをバインドすることをお勧めします。

  • のグローバルパラメータを有効にするHTTP/2 サーバー側のサポート。HTTP/2 Service Side (HTTP2Serverside) グローバルHTTPパラメーターを有効にして、HTTP/2が構成されたすべての負荷分散セットアップのサーバー側でHTTP/2サポートを有効にします。

    HTTP/2 は、関連する負荷分散 サービスにバインドされた HTTP/2 Service Side プロファイルで HTTP/2 が有効になっていても、負荷分散セットアップのサーバー側では機能しません。

CitrixADCコマンドライン手順:

CitrixADCコマンドラインを使用して HTTP/2を有効にして、HTTP/2 パラメーターを設定するには

  • HTTP/2を有効にして、HTTPプロファイルの追加中にHTTP/2パラメーターを設定するには、コマンドプロンプトで次を入力します。

add ns httpProfile <name> - http2 ( ENABLED | DISABLED ) [-http2Direct ( ENABLED | DISABLED )] [-altsvc ( ENABLED | DISABLED )] show ns httpProfile <name>

  • HTTP/2を有効にしてHTTPプロファイルの変更中にHTTP/2パラメーターを設定するには、コマンドプロンプトで次を入力します。

set ns httpProfile <name> -http2 ( ENABLED | DISABLED ) [-http2Direct ( ENABLED | DISABLED)] [-altsvc (ENABLED | DISABLED )] show ns httpProfile <name>

CitrixADCコマンドラインを使用してHTTPプロファイルを仮想サーバーにバインドするには

コマンドプロンプトで、次のように入力します。

set lb vserver <name> - httpProfileName <string> show lb vserver <name>

Citrix ADCコマンドラインを使用してHTTPプロファイルを負荷分散サービスにバインドするには

コマンドプロンプトで、次のように入力します。

set service <name> -httpProfileName <string> show service <name>

Citrix ADCコマンドラインを使用して、サーバー側でグローバルにHTTP/2サポートを有効にするには

コマンドプロンプトで、次のように入力します。

set ns httpParam -HTTP2Serverside( ENABLED | DISABLED ) show ns httpParam

Citrix ADC GUIを使用して、HTTP/2を有効にしてHTTP/2パラメーターを設定するには

  1. [システム] > [プロファイル] に移動し、[HTTP プロファイル] タブをクリックします。
  2. HTTPプロファイルの追加中または既存のHTTPプロファイルの変更中HTTP/2を有効にします。

Citrix ADCGUIを使用してHTTPプロファイルを仮想サーバーにバインドするには

  1. Traffic Management > Load Balancing > Virtual Serversに移動して仮想サーバーを開きます。
  2. [詳細設定] で、[+ HTTP プロファイル] をクリックして、作成した HTTP プロファイルを仮想サーバーにバインドします。

Citrix ADC GUIを使用してHTTPプロファイルを負荷分散サービスにバインドするには

  1. [トラフィック管理] > [負荷 分散]> [サービス] に移動し、サービスを開きます。
  2. [詳細設定] で、[+ HTTP プロファイル] をクリックして、作成した HTTP プロファイルをサービスにバインドします。

GUIを使用してサーバー側でグローバルにHTTP/2サポートを有効にするには

[システム] > [設定] に移動し、[HTTP パラメータの変更] をクリックして HTTP/2 サーバー側 を有効にします。

構成例

次の設定例では、HTTP profile HTTP-PROFILE-HTTP2-CLIENT-SIDEの HTTP/2 およびダイレクト HTTP/2 が有効になっています。プロファイルは、仮想サーバ LB-VS-1 にバインドされます。

set ns httpProfile HTTP-PROFILE-HTTP2-CLIENT-SIDE -http2 enabled -http2Direct enabled
Done

set lb vserver LB-VS-1 -httpProfileName HTTP-PROFILE-HTTP2-CLIENT-SIDE

Done

次の設定例では、HTTP/2 および代替サービス(ALT-SVC)が HTTP プロファイル HTTP-PROFILE-HTTP2-SERVER-SIDE で有効になっています。プロファイルはサービスLB-SERVICE-1にバインドされます。

set ns httpparam -HTTP2Serverside ENABLED
Done

set ns httpProfile HTTP-PROFILE-HTTP2-SERVER-SIDE -http2 ENABLED -altsvc ENABLED
Done

set service LB-SERVICE-1 -httpProfileName HTTP-PROFILE-HTTP2-SERVER-SIDE
Done
HTTP/2構成