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
match_case パラメータには、SENSITIVE または INSENSITIVE のいずれかを指定できます。デフォルトは INSENSITIVE です。
string_group_refs パラメータは、URI が文字列として構成された文字列グループ参照のリストです。これらは、NSX Advanced Load Balancer ユーザー インターフェイスで に移動することで構成できます。
uri_non_cacheable
キャッシュ パスの一致に string_group_refs が定義されていない場合、NSX Advanced Load Balancer は要求に対して URI ベースの選択的キャッシュを実行しません。uri_non_cacheable
パスの一致オブジェクトには(文字列グループに加えて)文字列オプションを指定することもできます。ただし、パスの一致の文字列として URI を追加することはサポートされていません。
要求キャッシュ制御を無視
アプリケーション プロファイルのキャッシュ構成で、ignore_request_cache_control
が True
に設定されている場合、クライアントのキャッシュ制御ヘッダー(以下に示す)は無視され、NSX Advanced Load Balancer は、以前に示したキャッシュ制御フローに従ってキャッシュからの取得およびキャッシュへの保存を実行します。このフラグを False
に設定すると、要求内のクライアント キャッシュ制御フラグが考慮されます。デフォルトでは、このフラグは False
に設定されています。ignore_request_cache_control
が True
に設定されている場合、次のキャッシュの有効期限ディレクティブは無視されます。
要求時のキャッシュの有効期限ディレクティブ
- 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 ユーザー インターフェイスの構成
の順に移動します。
新しいアプリケーション プロファイルを作成するか、既存のアプリケーション プロファイルを編集します。
[新規アプリケーション プロファイル] ウィンドウで [キャッシュ] タブを選択します。キャッシュはデフォルトでオフになっています。
[キャッシュを有効化] オプションを選択して、[キャッシュ不可能な URI] オプションを表示します。
[キャッシュ不可能な URI] オプションを選択して、[基準] および [文字列グループまたはカスタム文字列] を入力します。
[保存] をクリックします。