NSX Advanced Load Balancer では、URI と MIME タイプに基づいて応答をキャッシュすることができます。このセクションでは、両方のオプションについて詳しく説明します。

MIME タイプベースのキャッシュ

以前の唯一のオプションである MIME タイプ ベースのキャッシュは、アプリケーション プロファイル内のキャッシュ可能な MIME タイプやキャッシュ不可能な MIME タイプなどのキャッシュ制御構成パラメータに基づいていました。この構成は、NSX Advanced Load Balancer がサーバからの正常な応答をキャッシュするかどうかを決定します。キャッシュ可能な MIME タイプが構成されている場合(デフォルトではない)、サーバからの「200 OK」応答は、その MIME タイプがキャッシュ可能な MIME タイプ リスト内のいずれかの参照と一致する場合にのみキャッシュされます。それ以外の場合、応答はキャッシュされません。

キャッシュ不可能な MIME タイプのリストのみが構成されている場合、MIME タイプが一致する「200 OK」応答はキャッシュされず、それ以外はすべてキャッシュされます。ユーザーが MIME タイプのキャッシュ可能なリストとキャッシュ不可能なリストの両方を構成すると、キャッシュ可能なリスト内のエントリに一致する応答のみがキャッシュされます。キャッシュ不可能なリストは、基本的に無視されます。

選択的 URI キャッシュ

MIME タイプベースのキャッシュとは対照的に、選択的 URI キャッシュはよりきめ細かく実行され、キャッシュ不可能な URI リストに基づいています。このリストには一致基準と、一連の文字列グループを構成するオプションがあり、それぞれに 1 つ以上の URI が文字列として保存されます。

キャッシュ不可能な URI のリストが構成されている場合、このリストに一致する要求 URI に対する「200 OK」応答はキャッシュされません。このリストに対して URI を処理した結果に続いて、キャッシュ/フェッチの決定は、要求と応答のキャッシュ制御ヘッダー(no-cache/no-store、アプリケーション プロファイルに固有のその他のキャッシュ関連の構成など)にも依存します。

以下の図 1 は、キャッシュ可能な MIME タイプとキャッシュ不可能な MIME タイプ、およびキャッシュ不可能な URI キャッシュ構成に対する要求 URI の処理を示しています。



キャッシュ不可能な URI PathMatch 構成

キャッシュの有効化に加えて、構成は以下を受け入れます。

  • 一致基準

  • 大文字と小文字の区別を決定するオプション

  • URI のリスト

| cache_config | 
    | enabled | True |
    .
    .
    .
   | uri_non_cacheable | 
         | match_criteria | DOES_NOT_EQUAL |
         | match_case | INSENSITIVE |
         | string_group_refs[1] | non-uri_sg

uri_non_cacheable 構成パラメータの完全なセット

match_criteria パラメータには、次の値を使用できます。

  • BEGINS_WITH

  • DOES_NOT_BEGIN_WITH

  • CONTAINS

  • DOES_NOT_CONTAIN

  • ENDS_WITH

  • DOES_NOT_END_WITH

  • EQUALS

  • DOES_NOT_EQUAL

  • REGEX_MATCH

  • REGEX_DOES_NOT_MATCH

  1. match_case パラメータには、SENSITIVE または INSENSITIVE のいずれかを指定できます。デフォルトは INSENSITIVE です。

  2. string_group_refs パラメータは、URI が文字列として構成された文字列グループ参照のリストです。これらは、NSX Advanced Load Balancer ユーザー インターフェイスで [テンプレート] > [グループ] > [文字列グループ] に移動することで構成できます。

注:
  1. uri_non_cacheable キャッシュ パスの一致に string_group_refs が定義されていない場合、NSX Advanced Load Balancer は要求に対して URI ベースの選択的キャッシュを実行しません。

  2. uri_non_cacheable パスの一致オブジェクトには(文字列グループに加えて)文字列オプションを指定することもできます。ただし、パスの一致の文字列として URI を追加することはサポートされていません。

要求キャッシュ制御を無視

アプリケーション プロファイルのキャッシュ構成で、ignore_request_cache_controlTrue に設定されている場合、クライアントのキャッシュ制御ヘッダー(以下に示す)は無視され、NSX Advanced Load Balancer は、以前に示したキャッシュ制御フローに従ってキャッシュからの取得およびキャッシュへの保存を実行します。このフラグを False に設定すると、要求内のクライアント キャッシュ制御フラグが考慮されます。デフォルトでは、このフラグは False に設定されています。ignore_request_cache_controlTrue に設定されている場合、次のキャッシュの有効期限ディレクティブは無視されます。

要求時のキャッシュの有効期限ディレクティブ

- Pragma: no-cache
- Cache-control:
	no-cache | no-store
	max-age == 0

キャッシュ可能なクエリ

クエリ パラメータを URI とも一致させるには、キャッシュ構成で query_cacheable オプションを True に設定する必要があります。これにより、キャッシュ ロジックは、uri_non_cacheable 構成で構成された文字列グループ内の URI 文字列と照合するときに、クエリ パラメータとともに URI を含めることもできます。

CLI の構成例

Applicationprofile:
   http_profile:
      cache_config :                   
             enabled                           True                                                    
             xcache_header                     True                                                    
             age_header                        True                                                    
             date_header                       True                                                    
             min_object_size                   10                                                      
             max_object_size                   4194304                                                 
             default_expire                    600                                                     
             heuristic_expire                  False                                                   
             max_cache_size                    0                                                       
             query_cacheable                   True                                                    
             aggressive                        True                                                    
             uri_non_cacheable                                                                         
               match_criteria                  EQUALS                                                  
               match_case                      INSENSITIVE                                             
               string_group_refs[1]            uri_strings                                             
               ignore_request_cache_control    True

NSX Advanced Load Balancer ユーザー インターフェイスの構成

  1. [テンプレート] > [プロファイル] > [アプリケーション] の順に移動します。

  2. 新しいアプリケーション プロファイルを作成するか、既存のアプリケーション プロファイルを編集します。

  3. [新規アプリケーション プロファイル] ウィンドウで [キャッシュ] タブを選択します。キャッシュはデフォルトでオフになっています。

  4. [キャッシュを有効化] オプションを選択して、[キャッシュ不可能な URI] オプションを表示します。

  5. [キャッシュ不可能な URI] オプションを選択して、[基準] および [文字列グループまたはカスタム文字列] を入力します。

  6. [保存] をクリックします。