チャンク境界をサーバが送信した方法で維持する必要があるクライアントをサポートするために、HTTP アプリケーション プロファイル内で使用する新しいブール値パラメータ enable_chunk_merge
が導入されました。これを使用して、応答バッファ モードが構成されていない場合にチャンク本文のマージを無効にすることができます。
パラメータ設定
enable_chunk_merge パラメータには、次の 2 つの値のいずれかを設定できます。
True
(デフォルト)に設定されている場合、バックエンド サーバがチャンク化された HTTP 応答を送信すると、NSX Advanced Load Balancer SE は受信したチャンクを 1 つのチャンクにマージしてから、クライアントに応答を転送します。サーバの速度が遅い場合、SE はサーバがすべてのチャンクを送信するのを待機しません。たとえば、サーバに 7 つのチャンクがあるが、応答の処理がスケジュール設定されている場合に SE が最初の 3 つのチャンクのみを受信する場合、SE は 3 つのチャンクがすべて 1 つの大きなチャンクにマージしてクライアントに転送します。次回、SE が残りの 4 つのチャンクをすべて受信した場合、それらを 1 つにマージしてクライアントに転送します。チャンクのマージは、最初から NSX Advanced Load Balancer の動作でした。
False
に設定されている場合、応答バッファ モードが構成されていない時にサーバがチャンク化された HTTP 応答を送信すると、NSX Advanced Load Balancer SE はサーバから受信したチャンクをそのまま転送します。また、チャンク モードの応答本文はキャッシュされません。キャッシュが構成されている場合は、保存されたキャッシュ エントリをクリアする必要があります。
ユーザー インターフェイスの構成
次に示すように、[チャンクのマージを有効化] オプションが [アプリケーション プロファイル] エディタの [全般] タブに表示されます。
HTTP アプリケーション プロファイルの CLI データ構造
[admin:controller]: > show applicationprofile applicationprofile-1 +---------------------------------------+---------------------------------------------------------+ | Field | Value | +---------------------------------------+---------------------------------------------------------+ | uuid | applicationprofile-d9016ba3-cb99-474a-bcd2-3f459984002d | | name | applicationprofile-1 | | type | APPLICATION_PROFILE_TYPE_HTTP | | http_profile | | | connection_multiplexing_enabled | True | | xff_enabled | True | | xff_alternate_name | X-Forwarded-For | | ssl_everywhere_enabled | False | | hsts_enabled | False | | hsts_max_age | 365 | | secure_cookie_enabled | False | | httponly_enabled | False | | http_to_https | False | | server_side_redirect_to_https | False | | x_forwarded_proto_enabled | False | | spdy_enabled | False | | spdy_fwd_proxy_mode | False | | post_accept_timeout | 30000 milliseconds | | client_header_timeout | 10000 milliseconds | | client_body_timeout | 30000 milliseconds | | keepalive_timeout | 30000 milliseconds | | client_max_header_size | 12 kb | | client_max_request_size | 48 kb | | client_max_body_size | 0 kb | | max_rps_unknown_uri | 0 | | max_rps_cip | 0 | | max_rps_uri | 0 | | max_rps_cip_uri | 0 | | ssl_client_certificate_mode | SSL_CLIENT_CERTIFICATE_NONE | | websockets_enabled | True | | max_rps_unknown_cip | 0 | | max_bad_rps_cip | 0 | | max_bad_rps_uri | 0 | | max_bad_rps_cip_uri | 0 | | keepalive_header | False | | use_app_keepalive_timeout | False | | allow_dots_in_header_name | False | | disable_keepalive_posts_msie6 | True | | enable_request_body_buffering | False | | enable_fire_and_forget | False | | max_response_headers_size | 48 kb | | respond_with_100_continue | True | | hsts_subdomains_enabled | True | | enable_request_body_metrics | False | | fwd_close_hdr_for_bound_connections | True | | max_keepalive_requests | 100 | | disable_sni_hostname_check | False | | reset_conn_http_on_ssl_port | False | | http_upstream_buffer_size | 0 kb | | enable_chunk_merge | False | | preserve_client_ip | False | | preserve_client_port | False | | tenant_ref | admin | +---------------------------------------+---------------------------------------------------------+