Citrix ADC

HTTP圧縮

圧縮可能なコンテンツを持つ Web サイトの場合、HTTP 圧縮機能は可逆圧縮を実装し、サーバーから圧縮対応ブラウザに送信される HTTP 応答を圧縮することで、待ち時間、長いダウンロード時間、その他のネットワークパフォーマンスの問題を軽減します。処理負荷の高い圧縮タスクをサーバーからCitrix ADCアプライアンスにオフロードすることで、サーバーのパフォーマンスを向上させることができます。

次の表に、HTTP 圧縮機能の機能を示します。

機能 説明
圧縮率 圧縮率はレスポンスのファイルの種類によって異なりますが、常に重要であり、ネットワーク経由で送信されるデータ量が著しく減少します。
ブラウザ認識 Citrix ADCは、圧縮データを圧縮対応のブラウザにのみ提供し、クライアントとサーバー間のトランザクション時間を短縮します。最新のWebブラウザのほとんどは、HTTP圧縮をサポートしています。
圧縮ブロック 組み込みアクションを適用することで、コンテンツフィルタを定義して圧縮を選択的にブロックできます。
圧縮キャッシュ 統合キャッシュ機能を有効にすると、同じコンテンツに対する後続のリクエストがローカルキャッシュから処理されるため、サーバーへの往復回数が削減され、トランザクション時間が短縮されます。
HTTPSのサポート 圧縮は、サーバーまたはCitrix ADCアプライアンスで暗号化し、クライアントによって復号化する必要があるコンテンツの量を減らすため、SSL接続では特に便利です。
インテリジェントな応答フィルタリング Citrix ADC圧縮エンジンは、定義された圧縮パラメータに基づいてサーバーの応答をインテリジェントにフィルタリングします。たとえば、圧縮エンジンはコンテンツ長がゼロの応答と圧縮された応答を検出し、圧縮しません。圧縮されたレスポンスの検出により、オリジンサイトはCitrix ADC圧縮機能と組み合わせてサーバーベースの圧縮を使用できます。
圧縮スイッチング Citrix ADCアプライアンスは、圧縮対応クライアントからの要求を圧縮対応サーバーに透過的に送信します。これにより、これらのクライアントへの応答は圧縮され、他のクライアントへの応答は圧縮処理によって遅延されません。

HTTP 圧縮の仕組み

Citrix ADCでは、静的データと動的に生成されたデータの両方を圧縮できます。GZIPまたはDEFLATE圧縮アルゴリズムが適用されることで、無関係で反復的な情報がサーバー応答から削除され、より簡潔で効率的な形式で元の情報が表されます。この圧縮データは、クライアントのブラウザに送信され、ブラウザでサポートされているアルゴリズム(GZIPまたはDEFLATE)によって決定された圧縮解除されます。

Citrix ADC圧縮では、静的コンテンツと動的コンテンツの扱いが異なります。

  • 静的ファイルは一度だけ圧縮され、圧縮されたコピーはローカルメモリに保存されます。キャッシュされたファイルに対する後続のクライアント要求は、そのメモリから処理されます。
  • 動的ページは、クライアントが要求するたびに動的に作成されます。

クライアントがサーバーに要求を送信すると、次のようになります。

  1. クライアント要求がCitrix ADCに到着します。ADCはヘッダーを調べ、ブラウザがサポートする圧縮の種類に関する情報を格納します。
  2. ADCは要求をサーバーに転送し、応答を受信します。
  3. Citrix ADC圧縮エンジンは、サーバー応答をポリシーと照合して、圧縮性を検査します。
  4. 応答が圧縮アクションに関連付けられたポリシーと一致し、クライアントブラウザーがアクションで指定された圧縮アルゴリズムをサポートしている場合、Citrix ADCはそのアルゴリズムを適用し、圧縮された応答をクライアントブラウザーに送信します。
  5. クライアントは、サポートされている圧縮アルゴリズムを適用して応答を解凍します。

HTTP 圧縮の構成

デフォルトでは、Citrix ADCでは圧縮が無効になっています。この機能を設定する前に、有効にする必要があります。この機能が有効の場合、ADC は圧縮ポリシーで指定されたサーバ要求を圧縮します。

CLI を使用して HTTP 圧縮を有効にするには

圧縮は、HTTP サービスおよび SSL サービスに対してのみ有効にできます。すべての HTTP サービスおよび SSL サービスに適用されるように、グローバルに有効にすることも、特定のサービスに対してだけ有効にすることもできます。

コマンドプロンプトで、次のいずれかのコマンドを入力して、グローバルまたは特定のサービスに対して圧縮を有効にします。

  • enable ns feature cmp または
  • set service <name> -CMP YES

GUI を使用して圧縮を構成するには

次のいずれかを行います:

圧縮をグローバルに有効にするには、[システム] > [設定] に移動し、[基本機能の構成] をクリックして、[HTTP 圧縮] を選択します。

特定のサービスの圧縮を有効にするには、[トラフィック管理] > [負荷分散] > [サービス] に移動し、サービスを選択し、[編集] をクリックします。[設定] グループで鉛筆アイコンをクリックし、[圧縮] を有効にします。

圧縮アクションの設定

圧縮アクションは、要求または応答が、アクションが関連付けられているポリシーの規則(式)と一致した場合に実行するアクションを指定します。たとえば、特定のサーバーに送信される要求を識別する圧縮ポリシーを構成し、そのポリシーをサーバーの応答を圧縮するアクションに関連付けることができます。

次の 4 つの組み込み圧縮アクションがあります。

  • 圧縮:GZIPアルゴリズムを使用して、GZIPまたはGZIPとDEFLATEの両方をサポートするブラウザからデータを圧縮します。DEFLATE アルゴリズムを使用して、DEFLATE アルゴリズムのみをサポートするブラウザからデータを圧縮します。ブラウザがどちらのアルゴリズムもサポートしていない場合、ブラウザの応答は圧縮されません。
  • NOCOMPRESS: データを圧縮しません。
  • GZIP: GZIP アルゴリズムを使用して、GZIP 圧縮をサポートするブラウザーのデータを圧縮します。ブラウザが GZIP アルゴリズムをサポートしていない場合、ブラウザの応答は圧縮されません。
  • DEFLATE: DEFLATE アルゴリズムを使用して、DEFLATE アルゴリズムをサポートするブラウザーのデータを圧縮します。ブラウザが DEFLATE アルゴリズムをサポートしていない場合、ブラウザの応答は圧縮されません。アクションを作成したら、アクションを 1 つ以上の圧縮ポリシーに関連付けます。

コマンドプロンプトで次のコマンドを入力して、圧縮アクションを作成します。

add cmp action <name> <cmpType> [-addVaryHeader <addVaryHeader> -varyHeaderValue<string>]

CLI を使用して圧縮ポリシーを設定するには

圧縮ポリシーにはルールが含まれています。ルールは、Citrix ADCアプライアンスが圧縮する必要があるトラフィックを識別できるようにする論理式です。

Citrix ADCはサーバーからHTTP応答を受信すると、組み込みの圧縮ポリシーとカスタム圧縮ポリシーを評価して、応答を圧縮するかどうか、圧縮する場合は適用する圧縮の種類を決定します。ポリシーに割り当てられた優先順位によって、ポリシーがリクエストに対して照合される順序が決まります。

コマンドプロンプトで次のコマンドを入力して、圧縮ポリシーを作成します。

add cmp policy <name> -rule <expression> -resAction <string>

GUI を使用して圧縮アクションを作成するには

[最適化] > [HTTP 圧縮] > [アクション] に移動し、[追加] をクリックし、圧縮アクションを作成して、HTTP 応答で実行する圧縮のタイプを指定します。

圧縮ポリシーの設定

圧縮ポリシーにはルールが含まれています。ルールは、Citrix ADCアプライアンスが圧縮する必要があるトラフィックを識別できるようにする論理式です。

Citrix ADCはサーバーからHTTP応答を受信すると、組み込みの圧縮ポリシーとカスタム圧縮ポリシーを評価して、応答を圧縮するかどうか、圧縮する場合は適用する圧縮の種類を決定します。ポリシーに割り当てられた優先順位によって、ポリシーがリクエストに対して照合される順序が決まります。

次の表に、組み込みの HTTP 圧縮ポリシーを示します。これらのポリシーは、圧縮を有効にすると、グローバルにアクティブになります。

組み込みのクラシックまたはデフォルトの構文ポリシー 説明
ns_nocmp_mozilla_47, ns_adv_nocmp_mozilla_47 Mozilla 4.7 ブラウザからリクエストが送信されたときに CSS ファイルの圧縮を防ぎます。
ns_cmp_mscss, ns_adv_cmp_mscss Internet Explorer ブラウザから要求が送信されたときに、CSS ファイルを圧縮します。
ns_cmp_msapp, ns_adv_cmp_msapp 次のアプリケーションによって生成されるファイルを圧縮します。:Microsoft Office Word、Microsoft Office Excel、Microsoft Office パワーポイント。
ns_cmp_content_type, ns_adv_cmp_content_type 応答にContent-Typeヘッダーが含まれており、テキストが含まれているときにデータを圧縮します。
ns_nocmp_xml_ie, ns_adv_nocmp_xml_ie Microsoft Internet Explorerブラウザから要求が送信され、応答にContent-Typeヘッダーが含まれており、テキストまたはxmlが含まれているときの圧縮を防止します。

圧縮ポリシーのバインド

圧縮ポリシーを有効にするには、Citrix ADCを通過するすべてのトラフィックに適用されるように、グローバルにバインドするか、特定の仮想サーバーにバインドする必要があります。これにより、宛先がその仮想サーバーのVIPアドレスの要求にのみポリシーが適用されます。

ポリシーをバインドするときは、ポリシーに優先度を割り当てます。優先順位によって、定義したポリシーが評価される順序が決まります。プライオリティは任意の正の整数に設定できます。

CLI を使用して圧縮ポリシーをバインドするには

コマンドプロンプトで、次のいずれかのコマンドを入力して、圧縮ポリシーをグローバルにバインドするか、特定の仮想サーバーにバインドします。

  • bind cmp global <policyName> [-priority <positive_integer>] [-state (ENABLED|DISABLED)]
  • bind lb vserver <vserverName> -policyName <policyName> -priority <positive_integer>」を参照してください。

圧縮ポリシーをバインドする仮想サーバごとに、このコマンドを繰り返します。

GUI を使用して圧縮ポリシーをバインドするには

次のいずれかを行います:

グローバルレベルで [最適化] > [HTTP 圧縮] > [ポリシー] に移動し、[ポリシーマネージャ] をクリックし、関連するバインドポイントと接続タイプ (要求/応答) を指定して、必要なポリシーをバインドします。

仮想サーバ・レベルで

負荷分散仮想サーバーの場合は、 トラフィック管理 > 負荷分散 > 仮想サーバー に移動し、必要な仮想サーバーを選択し、[ポリシー] をクリックして、関連するポリシーをバインドします。

コンテンツスイッチング仮想サーバーの場合は、トラフィック管理 > コンテンツスイッチング > 仮想サーバーに移動し、必要な仮想サーバーを選択し、[ポリシー] をクリックして、関連するポリシーをバインドします。

最適なパフォーマンスを実現するためのグローバル圧縮パラメータの設定

多くのユーザーはグローバル圧縮パラメータのデフォルト値を受け入れますが、これらの設定をカスタマイズすることで、より効果的な圧縮を提供できる場合があります。

注: グローバル圧縮パラメータを設定した後は、アプライアンスを再起動する必要はありません。それらはすぐに新しいフローに適用されます。

次の表では、Citrix ADCで設定できる圧縮パラメータについて説明します。

圧縮パラメータ 説明
量子サイズ サーバ応答を累積するために維持されるバッファのサイズ(KB)。バッファサイズがこの値を超えると、応答は圧縮されます。たとえば、量子サイズを50 KBに設定すると、Citrix ADCはバッファのサイズが50 KBを超えるとバッファの内容を圧縮します。最小値:1。最大値:63488。デフォルトは 57344 です。
圧縮レベル サーバの応答に適用する圧縮レベル。可能な値:最高速度、最高圧縮、最適値。
HTTP 応答の最小サイズ 圧縮される HTTP 応答の最小サイズ(バイト単位)。このパラメータで指定された値より小さい応答は、圧縮されずに送信されます。
CPU 使用率の圧縮をバイパスする Citrix ADC の CPU 使用率(比率)で、圧縮は行われません。デフォルトは 100 です。
ポリシーの種類* 圧縮に使用されるポリシーのタイプ。使用可能な値:クラシック、デフォルト構文。デフォルト:クラシック。
サーバー側の圧縮を許可する サーバーからCitrix ADCへの圧縮データの送信を許可します。
プッシュパケットの圧縮 TCP PUSH フラグを持つパケットを受信すると、量子バッファがいっぱいになるのを待たずに、蓄積されたパケットをただちに圧縮します。
外部キャッシュ 応答メッセージが単一のユーザー向けであり、共有キャッシュまたはプロキシキャッシュによってキャッシュされてはならないことを示すプライベート応答ディレクティブを発行します。

GUI を使用して HTTP 圧縮を構成するには

次のいずれかを行います:

  • 圧縮をグローバルに有効にするには、[システム] > [設定] に移動し、[基本機能の構成] をクリックして、[HTTP 圧縮] を選択します。
  • 特定のサービスの圧縮を有効にするには、[トラフィック管理] > [負荷分散] > [サービス] に移動し、サービスを選択し、[編集] をクリックします。
  • [設定] グループで鉛筆アイコンをクリックし、[圧縮] を有効にします。

GUI を使用した圧縮アクションの構成

[最適化] > [HTTP 圧縮] > [アクション] に移動し、[追加] をクリックし、圧縮アクションを作成して、HTTP 応答で実行する圧縮のタイプを指定します。

GUI を使用した圧縮ポリシーの構成

[最適化] > [HTTP 圧縮] > [ポリシー] に移動し、[追加] をクリックし、実行する条件と対応するアクションを指定して圧縮ポリシーを作成します。

圧縮構成の評価

圧縮統計情報は、ダッシュボードユーティリティまたは SNMP モニタで表示できます。ダッシュボード・ユーティリティは、サマリー統計と詳細な統計を表形式およびグラフィック形式で表示します。

オプションで、ポリシーベースの圧縮中にポリシーカウンタが増加するヒット数など、圧縮ポリシーの統計情報を表示することもできます。

  • 統計情報とグラフの詳細については、Citrix ADCアプライアンスのダッシュボードのヘルプを参照してください。
  • SNMP の詳細については、「SNMP」を参照してください。

CLI を使用して圧縮統計を表示するには

コマンドプロンプトで次のコマンドを入力して、圧縮の統計情報を表示します。

  1. 圧縮統計情報のサマリーを表示します。

stat cmp

注: stat cmp policy コマンドは、既定の構文圧縮ポリシーの統計情報のみを表示します。

  1. 圧縮ポリシーのヒットと詳細を表示するには show cmp policy <name>

  2. 詳細な圧縮統計情報を表示するには stat cmp -detail

ダッシュボードを使用して圧縮統計を表示する手順は、次のとおりです。

ダッシュボードページでは、次のタイプの圧縮統計を表示できます。

  • 圧縮統計のサマリーを表示するには、[圧縮] を選択します。
  • プロトコルの種類別に詳細な圧縮統計を表示するには、[詳細] をクリックします。
  • 圧縮機能によって処理された要求の割合を表示するには、「グラフィカル・ビュー」タブをクリックします。

SNMP を使用して圧縮統計情報を表示するには

SNMP ネットワーク管理アプリケーションを使用して、次の圧縮統計を表示できます。

  • 圧縮リクエストの数 (OID:
  • 送信された圧縮バイト数(OID:1.3.6.1.4.1.5951.1.1.50.2)
  • 受信した圧縮可能なバイト数 (OID: 1.3.6.1.4.1.5951.1.1.50.3)
  • 送信された圧縮性パケットの数 (OID: 1.3.6.1.4.1.5951.1.1.50.4)
  • 受信した圧縮性パケットの数(OID:1.3.6.1.4.1.5951.1.50.5)
  • 受信した圧縮性データおよび送信した圧縮性データの比率 (OID: 1.3.6.1.4.1.5951.4.1.1.50.6)
  • 受信した合計データと、送信されたデータ合計の比率 (OID: 1.3.6.1.4.1.5951.1.1.50.7)

GUI を使用して追加の圧縮統計を表示するには

  1. HTTP 圧縮統計情報を表示するには、次の手順を実行します。

[最適化] > [HTTP 圧縮] に移動し、[統計] をクリックします。

  1. 圧縮ポリシーの統計情報を表示する。

[最適化] > [HTTP 圧縮] > [ポリシー] に移動し、ポリシーを選択し、[統計] をクリックします。

  1. 圧縮ポリシー・ラベルの統計情報を表示するには

  2. [最適化] > [HTTP 圧縮] > [ポリシー] に移動し、ポリシーラベルを選択し、[統計] をクリックします。

HTTP 圧縮のオフロード

サーバー上で圧縮を実行すると、サーバーのパフォーマンスに影響を与える可能性があります。Webサーバーの前に配置され、HTTP圧縮用に構成されたCitrix ADCは、静的コンテンツと動的コンテンツの両方の圧縮をオフロードし、サーバーのCPUサイクルとリソースを節約します。

Web サーバーから圧縮をオフロードするには、次の 2 つの方法があります。

Webサーバー上の圧縮を無効にし、グローバルレベルでCitrix ADC圧縮機能を有効にし、圧縮のためのサービスを構成します。

Webサーバーで圧縮機能を有効にしたまま、すべてのHTTPクライアント要求から「Accept Encoding」ヘッダーを削除するようにCitrix ADCアプライアンスを構成します。その後、サーバーは圧縮されていない応答を送信します。Citrix ADCは、クライアントに送信する前にサーバーの応答を圧縮します。

注: サーバーが自動的にすべての応答を圧縮する場合、2 番目のオプションは機能しません。Citrix ADCは、すでに圧縮されている応答を圧縮しようとしません。

Servercmp パラメーターを使用すると、Citrix ADC アプライアンスはオフロードの HTTP 圧縮を処理できます。デフォルトでは、サーバーがCitrix ADCアプライアンスに圧縮データを送信するために、このパラメータはONに設定されています。HTTP 圧縮をオフロードするには、servercmp パラメータを OFF に設定する必要があります。コマンドプロンプトで、次のコマンドを入力します。

set service <service name> -CMP YES

圧縮を有効にする各サービスに対して、このコマンドを繰り返します。

show service <service name>

各サービスに対してこのコマンドを繰り返し、圧縮が有効になっていることを確認します。

Save config

set cmp parameter –serverCmp OFF

注:

Servercmpパラメータがオンで、アプライアンスがサーバーから圧縮された応答を受信した場合、アプライアンスはそれ以上データを圧縮しません。代わりに、圧縮された応答をクライアントに転送します。

HTTP圧縮