更新时间:2025-08-28 GMT+08:00
通过ELB部署QUIC协议以提升应用加载速度
QUIC协议是基于UDP的快速互联网连接协议,改善拥塞控制,不依赖内核协议支持,用户使用具有更高的灵活性。
QUIC协议具备低时延、避免队头阻塞的多路复用优势,极佳的弱网性能可以有效解决网络、视频卡顿的问题,提升网络使用体验,同时保障数据传输的安全性。
QUIC协议概述
QUIC协议基于UDP协议实现,不需要完成TCP协议的三次握手且可以绕过TCP协议的队头阻塞,在应用层实现流(Stream)级别的多路复用,单个流丢包不用阻塞其他流。相对于传统的TCP协议,QUIC协议拥有更高的灵活性。
QUIC与HTTP/3的协商
- HTTP/3是QUIC的标准应用层协议,第一次请求时,服务器通过HTTP/1.1或HTTP/2与浏览器建立连接,并通知浏览器支持QUIC。第二次请求通过竞速机制,QUIC建立连接更快即可升级到QUIC协议,浏览器和服务器默认通过HTTP/3协商QUIC连接。
- 客户端仅支持通过HTTP/3使用QUIC,如果无法建立HTTP/3连接,将会使用HTTP/1.1或HTTP/2。
图1 客户端通过ELB访问Web应用

准备工作
- 已创建独享型ELB实例,且ELB已绑定EIP。具体操作,请参见购买独享型负载均衡器和绑定IPv4公网IP。
- 已创建两台ECS,ECS与已创建的ELB实例属于同一个VPC,更多详细设置请参考快速创建ECS,本实践方案以ECS安装CentOS系统为例。第一台ECS_client用作客户端发送HTTP请求,第二台ECS_server用作部署Web应用的后端服务器。
- 已购买证书或者上传第三方证书到SSL证书服务,推荐您在云证书管理服务购买服务器证书,详情请参见购买SSL证书。
- 已创建协议类型为HTTP协议的后端服务器组,服务器组中添加了ECS_server实例,本实践后端服务器的业务端口为442端口。
步骤一:配置客户端支持HTTP/3
对于Web应用,支持QUIC连接的客户端环境需要支持HTTP/3,更多详情您可参考curl官网文档中HTTP/3和QUIC支持。
- 远程登录客户端ECS_client。
弹性云服务器有多种登录方法,具体请参见登录弹性云服务器。
- 执行以下命令安装基础的依赖环境。
- 安装启用epel源的软件包并更新缓存。
sudo yum install -y epel-release sudo yum makecache
- 安装所需软件包。
sudo yum install -y git perl-IPC-cmd autoconf automake libtool libpsl-devel
- 安装启用epel源的软件包并更新缓存。
- 构建支持QUIC和HTTP/3的curl工具。
步骤二:在后端服务器中部署Web应用
- 远程登录后端服务器ECS_server。
- 在后端服务器中,新建目录quic_testweb。
mkdir quic_testweb
- 在quic_testweb目录下,新建一个index.html文件。
- 新建index.html文件。
vi index.html
- 按i键进入编辑模式,index.html的脚本如下。
hello, this is quic!
- 新建index.html文件。
- 按Esc键退出编辑模式,输入:wq保存index.html文件。
步骤三:添加QUIC监听器
- 进入弹性负载均衡列表页面。
- 在目标弹性负载均衡实例的操作列,单击“添加监听器”。
- 在添加监听器页面,前端协议选择“QUIC”,本实践方案设置442端口。
图2 添加QUIC监听器
- 单击“下一步:配置后端分配策略”,后端服务器组参数选择“使用已有”。选择已经创建完成的HTTP服务器组,完成后单击“下一步:确认配置”。
- 确认配置参数后,单击“提交”,完成QUIC监听器的创建。
步骤四:验证QUIC生效
- 通过以下curl命令访问ELB绑定的EIP和监听端口:
curl --http3-only -k -i https://<EIP>:<PORT>
- 收到如图3所示页面,则表示客户端通过ELB与后端服务之间通过QUIC协商实现了HTTP/3通信。