为了支持需要按照服务器发送块的方式保持块边界的客户端,引入了新的布尔参数 enable_chunk_merge
以在 HTTP 应用程序配置文件中使用。在未配置响应缓冲区模式时,可以使用该参数停用块正文合并。
参数设置
enable_chunk_merge 参数采用以下两个值之一:
在设置为
True
(默认)时,如果后端服务器发送分块的 HTTP 响应,则 NSX Advanced Load Balancer SE 将收到的块合并为单个块,然后再将其响应转发到客户端。如果服务器速度缓慢,SE 不会等待服务器发送所有块。例如,如果服务器具有 7 个块,但在计划处理响应时 SE 只收到前三个块,则它将所有三个块合并为一个大块并将其转发到客户端。下一次,如果 SE 收到所有其余 4 个块,则将它们合并为一个块并将其转发到客户端。块合并从一开始就是 NSX Advanced Load Balancer 行为。
在设置为
False
时,对于分块的 HTTP 响应,如果未配置响应缓冲模式,则 NSX Advanced Load Balancer SE 按原样转发从服务器收到的块。此外,不会缓存处于分块模式的响应正文。如果配置了缓存,则需要清除保存的缓存条目。
UI 配置
启用分块合并选项显示在应用程序配置文件编辑器的常规选项卡下面,如下所示。
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 | +---------------------------------------+---------------------------------------------------------+