NetScaler

在NetScaler设备上配置HTTP/2

请注意: NetScaler的MPX、VPX和SDX型号支持HTTP/2功能。对于NetScaler VPX,从11.0版本开始就支持HTTP/2功能。

web应用程序性能的问题直接与页面大小和页面上对象数量增加的趋势有关。HTTP/1.1是为了支持更小的网页,更慢的互联网连接,以及比现在更有限的服务器硬件而开发的。它不太适合JavaScript和层叠样式表(CSS)等较新的技术,也不适合Flash视频和图形丰富的图像等新媒体类型,因为它在每个连接到服务器的连接中只能请求一个资源。这种限制极大地增加了往返次数,导致页面呈现时间变长并降低了网络性能。

HTTP/2协议通过允许在网络上以更少的数据传输进行通信,并提供跨单个连接发送多个请求和响应的能力,解决了这些限制。在其核心,HTTP/2通过更有效地使用底层网络连接解决了HTTP/1.1的关键限制。它改变了请求和响应在网络上的传输方式。

HTTP/2是一个二进制协议。与HTTP/1.1等文本协议相比,它解析起来更高效,在连接上更紧凑,最重要的是,它更不容易出错。HTTP/2协议使用一个二进制帧层来定义帧类型以及HTTP消息如何被封装和在客户端和服务器端之间传输。HTTP/2功能支持使用CONNECT方法通过单个HTTP/2流建立到远程主机的隧道连接。

HTTP/2协议包含了许多性能增强的变化,显著提高了性能,特别是对于通过移动网络连接的客户端。

下表列出了HTTP / 1.1上的HTTP / 2中的主要改进:

HTTP / 2的特性 描述
头压缩 HTTP报头具有大量重复信息,因此在数据传输过程中会消耗不必要的带宽。HTTP/2通过压缩报头和最小化每个请求和响应传输HTTP报头的需求来减少带宽需求。
连接多路复用 延迟会对页面加载时间和最终用户体验产生巨大的影响。连接多路复用通过在单个连接上发送多个请求和响应来克服这个问题。
服务器推送 服务器推送允许服务器主动将内容推送到客户端浏览器,避免了往返延迟。该特性会缓存它认为客户端需要的响应,减少往返次数,并改善页面呈现时间。重要提示:NetScaler设备不支持服务器推送功能。
没有Head-of-line阻塞 在HTTP/1.1下,浏览器每次可以在每个连接上下载一个资源。当浏览器必须下载一个大型资源时,它会阻止所有其他资源的下载,直到第一次下载完成。HTTP/2通过多路复用方法克服了这个问题。它允许客户端浏览器在同一连接上并行下载其他web组件,并在它们可用时显示它们。
请求优先级 当浏览器呈现网页时,并非所有资源都具有相同的优先级。为了加快加载时间,所有现代浏览器都根据资源类型、它们在页面上的位置,甚至从以前的访问中了解到的优先级来优先处理请求。在HTTP/1.1中,浏览器利用优先级数据的能力有限,因为该协议不支持多路复用,而且服务器没有办法通信请求优先级。其结果是不必要的网络延迟。HTTP/2通过允许浏览器分派所有请求来克服这个问题。浏览器可以通过流依赖关系和权重来传递它的流优先级偏好,使服务器能够优化响应传递。重要提示:NetScaler设备不支持请求优先级功能。

HTTP / 2如何在NetScaler设备上工作

NetScaler设备在客户端和服务器端都支持HTTP/2。在客户端,NetScaler设备作为服务器,托管HTTP/2的HTTP/HTTPS虚拟服务器。在后端,NetScaler作为绑定到虚拟服务器的服务器的客户端。

因此,NetScaler设备在客户端和服务器端维护独立的连接。NetScaler设备在客户端和服务器端有单独的HTTP/2配置。

HTTP / 2对于HTTPS(SSL)负载平衡配置

对于HTTPS负载均衡配置,NetScaler设备使用TLS ALPN扩展(RFC 7301)来确定客户端/服务器是否支持HTTP / 2。如果确实如此,设备将HTTP / 2选择为应用层协议,以在客户端/服务器侧上发送数据(如RFC 7540 - 第3.3节中所述)。在通过TLS ALPN扩展选择应用层协议时,设备使用以下优先顺序:

  • http / 2(如果在http配置文件中启用)
  • SPDY(如果在HTTP配置文件中启用)
  • http / 1.1

HTTP/2配置HTTP负载均衡

对于HTTP负载均衡配置,NetScaler设备使用以下方法之一开始使用HTTP/2与客户端/服务器通信。

请注意

在下面的方法描述中,客户端和服务器是HTTP/2连接的通用术语。例如,对于使用HTTP/2的NetScaler设备的负载平衡设置,NetScaler设备在客户端充当服务器,在服务器端充当客户端。

如果在与虚拟服务器关联的HTTP配置文件上启用HTTP / 2设置,则NetScaler设备确实如此支持直接使用HTTP / 2,但它仍然通过将HTTP / 2请求转发到服务器来充当TCP代理。

配置HTTP / 2

HTTP/2特性是NetScaler设备上HTTP配置的一部分。缺省情况下,HTTP/2特性是关闭的。您必须在特定的HTTP配置文件上启用该特性,并将该HTTP配置文件与您想要使用HTTP/2特性的服务或虚拟服务器相关联。

要了解更多关于绑定HTTP配置文件到虚拟服务器的信息,请参见HTTP配置页面中的设置服务或特定于虚拟服务器的HTTP参数一节。

请注意

如果在NetScaler设备上启用了用户源IP (USIP)模式而禁用了代理模式,则HTTP/2功能将无法工作。

使用Citrix ADC GUI配置HTTP/2

  1. 在NetScaler设备上创建HTTP/2配置文件。导航到系统>配置文件,单击HTTP配置文件然后点击添加使用选中的HTTP/2复选框创建HTTP配置文件。
  2. [可选]配置HTTP/2头表大小。导航到系统>配置文件,选择HTTP配置文件,单击编辑指定标题压缩表的最大大小HTTP/2报头表大小文本框中。
  3. [可选]配置HTTP/2初始窗口大小系统>配置文件,选择HTTP配置文件,单击编辑指定HTTP / 2流中的初始窗口大小http / 2初始窗口大小文本框中。
  4. [可选]配置HTTP/2最大并发流。

    导航到系统>配置文件,选择HTTP配置文件,单击“编辑”,在“HTTP/2最大并发流”文本框中指定每个连接的最大并发流数。

  5. [可选]配置HTTP/2最大帧大小。导航到系统>配置文件,选择HTTP配置文件,单击“编辑”以指定帧的最大大小HTTP/2最大帧大小文本框中。
  6. [可选]配置HTTP/2最大头列表大小。导航到系统>配置文件,选择HTTP配置文件,单击编辑要指定标题大小最大标题列表大小文本框中。
在NetScaler设备上配置HTTP/2