当您的HTTPS服务已配置全球加速,并且计划引入HTTP/2协议版本来进一步提升服务性能时,您可以在全球加速中配置HTTP/2协议版本。通过此配置,HTTPS服务可以充分利用HTTP/2的优势,大幅提升服务性能,有效降低延迟及网络开销,提升整体访问体验。
什么是HTTP/2协议
如何协商HTTP/2
在HTTPS的协议协商中,客户端与服务端必须建立TLS连接后才能发送应用数据。引入HTTP/2协议版本后,需要在协商机制中加入应用层协议协商ALPN(Application Layer Protocol Negotiation),客户端和服务端会通过ALPN协商确定使用的协议版本。
全球加速中指定HTTP/2协议后,在TLS握手过程中,全球加速会在Client Hello的ALPN字段中指定支持的协议版本为h2,同时会忽略服务端在Server Hello的ALPN字段中响应的协议版本,强制使用HTTP/2协议版本连接后端服务。
场景示例
本文以下图场景为例。某企业的总部在美国硅谷,总部使用阿里云服务器ECS部署了HTTPS网站,客户端主要分布在中国香港。同时,该企业已部署全球加速服务,用于解决因跨国公网不稳定,而带来的延迟、抖动、丢包等网络问题。
为了进一步改进网站性能,提高用户访问体验,该企业计划引入HTTP/2协议。
由于全球加速配置后端服务协议为HTTPS时,默认以HTTP/1.1协议版本连接后端服务。该企业现需要修改全球加速实例配置,指定HTTP/2协议版本连接后端服务,从而充分体验该协议版本所带来的性能改进。
使用限制
全球加速配置HTTP/2协议版本连接后端服务,有以下使用限制:
如果您的GA实例不支持选择连接后端服务的协议版本,可能是由于实例版本不支持。如需使用,请向商务经理申请升级实例。
不支持WebSocket协议。
不支持HTTP/2协议中的服务器推送(Server Push)特性。
不支持加速以HTTP/2为基础的gRPC请求。
前提条件
您已在证书中心购买或上传服务器证书。具体操作,请参见购买正式证书和上传和共享SSL证书。
您已将证书文件上传至后端服务器。具体操作,请参见通过云助手上传文件到ECS实例。
您的后端服务器已部署了HTTPS 443服务,并启用了HTTP/2协议版本。
请确保已在后端服务器所属安全组规则入方向添加TCP 443端口。具体操作,请参见添加安全组规则。
您已创建全球加速实例,并已将后端服务器添加为全球加速的终端节点,设置后端服务协议为HTTPS。具体操作,请参见创建和管理标准型全球加速实例。
证书绑定的域名已完成DNS解析,即您的域名与全球加速实例分配的CNAME地址相互映射。具体操作,请参见配置CNAME。
配置HTTP/2协议连接后端服务
此处仅介绍本文场景所涉及的关键配置项,关于终端节点组配置项更多信息,请参见添加和管理智能路由类型监听的终端节点组。
登录全球加速管理控制台。
在实例列表页面,找到目标全球加速实例,在操作列单击配置监听。
在监听页签下,找到目标监听,然后在操作列单击编辑节点组。
在配置监听和协议配置向导页面,单击下一步。
在配置终端节点配置向导页面,配置协议版本为HTTP/2,然后单击下一步。
在配置审核配置向导页面,确认信息,然后单击提交。
结果验证
您可以在终端节点组中配置协议版本为HTTP/2之前以及之后,分别执行以下操作步骤,以验证HTTP/2协议是否生效。
在中国香港地域客户端打开浏览器,输入
https://<加速域名>
,可以正常访问后端服务。在美国硅谷地域的后端服务器打开命令行窗口,执行以下命令,查看最近一次的访问记录。
通过返回的访问记录详情,可以查看访问请求转发至后端服务器所使用的协议版本。
tail -n 1 /var/log/nginx/access.log
配置协议版本前,返回访问记录如下:
配置协议版本为HTTP/2后,返回访问记录如下:
相关文档
产品教程
终端节点组配置项详细信息,请参见添加和管理智能路由类型监听的终端节点组。
如需从HTTP快速升级到HTTP/3协议对外提供服务,提升服务质量与系统能力,可配置客户端接入GA的HTTP最大版本为HTTP/3,请参见GA使用HTTP/3协议提升应用系统访问体验。
API文档
CreateEndpointGroup:创建终端节点组。通过
EndpointProtocolVersion
参数指定连接后端服务的协议版本。UpdateEndpointGroup:修改终端节点组的业务配置。通过
EndpointProtocolVersion
参数指定连接后端服务的协议版本。DeleteEndpointGroup: 删除终端节点组。