SPDY (快速)

警告 SPDY 已从 NetScaler 12.0 版本 56.20 版本中弃用,作为替代方案,Citrix 建议您使用 HTTP/2 功能。有关详细信息, 请参阅 HTTP/2主题。

SPDY 是谷歌开发的一种开放式网络实验协议,旨在减少客户端在浏览器中加载网页所花费的时间。作为应用程序层协议,SPDY 改变 HTTP 请求和响应的处理方式。与常规 HTTP 事务相比,SPDY 具有以下优势:

  • 多路复用请求和响应-在单个 SPDY 会话中,可以通过单个 TCP 连接向服务器发送来自客户端的多个请求。这将减少 TCP 连接的数量,并优化每个 TCP 连接的使用。
  • 请求优先级-从服务器请求服务时,客户端可以为每个请求分配优先级。
  • 标头压缩 — SPDY 压缩 HTTP 请求和响应标头,从而节省带宽并减少延迟。
  • 服务器推送 — 服务器可以在客户端请求之前将数据发送到客户端。
  • 安全性 — SPDY 通过设计是安全的,因为 SPDY 连接需要 SSL。

Citrix ADC 支持 SPDY/2 和 SPDY/3(从 Citrix ADC 10.5 开始)版本。

注意: SPDY 支持取决于所使用的浏览器版本。

如果将 Citrix ADC 设备用作服务器的 SPDY Gateway,则服务器不必支持 SPDY。Citrix ADC 设备接受传入的 SPDY 请求、转换这些请求并将其作为 HTTP 请求发送到服务器。它还会转换 HTTP 响应并将其作为 SPDY 响应发送给客户端。虽然 SPDY 的关键价值在于降低带宽消耗并加快与客户端的通信速度,但 Citrix ADC 解决方案的另一个优点是,您可以避免升级 Web 服务器和应用程序以支持 SPDY 这一耗时的任务。

要将 Citrix ADC 设备用作 SPDY Gateway,必须在设备上启用 SPDY。

系统要求

SPDY 连接的两端必须支持相同版本的 SPDY。此外,客户端必须满足以下要求:

支持 ZLIB 压缩并接受压缩数据。

支持下一个协议协商 (NPN) TLS 扩展,因为在 TLS 握手中使用 NPN。

SPDY 如何通过 SSL 工作

如果启用了 SPDY,当 Citrix ADC 设备在客户端 Hello 消息中看到带有受支持协议列表的 TLS ALPN 扩展时,它会在服务器 Hello 中的 ALPN 扩展中使用 SPDY/3 或 SPDY/2 进行响应。

Citrix ADC 还可以协商 SPDY 通过 NPN. 当 Citrix ADC 在“客户端 Hello”消息中看到空 NPN 扩展名时,它会响应其支持的协议列表。如果在 Citrix ADC 设备上启用了 SPDY,则该设备将通告 HTTP/1.1 和 SPDY/2 协议。客户端从此列表中选择一个协议,并与服务器协商该协议。由于以纯文本形式发送协商协议会引起安全问题,因此客户端发送“更改密码规范”通知,该通知定义会话加密的详细信息,然后是“下一个协议”消息,其中包含客户端选择的加密协议。然后,客户端发送“已完成”消息。Citrix ADC 设备解密“下一个协议”消息,然后发送“已完成”消息。

然后建立一个会话,并可交换应用程序数据。

注意 Citrix ADC FIPS 设备和 TLS 协议版本 1.1 和 1.2 不支持 NPN 扩展。

配置 SPDY

默认情况下,在 Citrix ADC 设备上禁用 SPDY。启用 SPDY 后,设备会在 SSL 握手期间与 HTTP/1.1 一起发布 SPDY/2 和/或 SPDY/3。要在 Citrix ADC 设备上启用 SPDY,必须在绑定到 SSL 虚拟服务器的 HTTP 配置文件中启用 SPDY。

使用命令行界面配置 SPDY

在命令提示窗口中执行以下操作:

Enable SPDY on a HTTP profile

set ns httpProfile <profileName> -SPDY <options>

示例

> set ns httpProfile profile1 -SPDY ENABLED

Bind the HTTP profile to a SSL virtual server.

set lb vserver <ssl-vserver-name> -httpProfileName <httpProfile-with-spdy>

示例

> set lb vserver SPDY_LB -httpProfileName profile1

注意: 要在全局范围内应用 SPDY,请在全局 HTTP 配置文件上启用 SPDY(默认配置文件)。

您可以使用以下命令查看统计信息:

stat protocol http -detail

使用 GUI 配置 SPDY

导航到“系统”>“配置 件”,然后在“HTTP配置文件”选项卡中,更新要启用 SPDY 的配置文件。

导航到 流量管理 > 负载平衡 > 虚拟服务器 ,然后将 HTTP 配置文件关联到相应的 SSL 虚拟服务器。

SPDY 故障排除

如果即使在执行所需步骤后仍未启用 SPDY 会话,请检查以下条件。

如果客户端使用 Chrome 浏览器,则 SPDY 可能无法在某些情况下工作,因为 Chrome 有时不会启动 TLS 握手。

如果客户端和 Citrix ADC 设备之间存在正向代理,并且正向代理不支持 SPDY,则可能无法启用 SPDY 会话。

Citrix ADC 不支持 TLS 1.1/1.2 上的 NPN。要使用 SPDY,客户端应该在浏览器中禁用 TLS1.1/1.2。

同样,如果客户端想要使用 SPDY,则必须在浏览器上禁用 SSL2/3。