文档首页/ 弹性负载均衡 ELB/ 最佳实践/ 高级功能/ 通过ELB部署QUIC协议以提升应用加载速度
更新时间: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支持

  1. 远程登录客户端ECS_client。

    弹性云服务器有多种登录方法,具体请参见登录弹性云服务器

  2. 执行以下命令安装基础的依赖环境。
    1. 安装启用epel源的软件包并更新缓存。
      sudo yum install -y epel-release
      sudo yum makecache
    2. 安装所需软件包。
      sudo yum install -y git perl-IPC-cmd autoconf automake libtool libpsl-devel
  3. 构建支持QUIC和HTTP/3的curl工具。

步骤二:在后端服务器中部署Web应用

  1. 远程登录后端服务器ECS_server。
  2. 在后端服务器中,新建目录quic_testweb。
    mkdir quic_testweb
  3. 在quic_testweb目录下,新建一个index.html文件。
    1. 新建index.html文件。
      vi index.html
    2. i键进入编辑模式,index.html的脚本如下。
      hello, this is quic!
  4. Esc键退出编辑模式,输入:wq保存index.html文件。

步骤三:添加QUIC监听器

  1. 进入弹性负载均衡列表页面
  2. 在目标弹性负载均衡实例的操作列,单击“添加监听器”。
  3. 在添加监听器页面,前端协议选择“QUIC”,本实践方案设置442端口。
    图2 添加QUIC监听器
  4. 单击“下一步:配置后端分配策略”,后端服务器组参数选择“使用已有”。选择已经创建完成的HTTP服务器组,完成后单击“下一步:确认配置”。
  5. 确认配置参数后,单击“提交”,完成QUIC监听器的创建。

步骤四:验证QUIC生效

  1. 通过以下curl命令访问ELB绑定的EIP和监听端口:
    curl --http3-only -k -i https://<EIP>:<PORT>
  2. 收到如图3所示页面,则表示客户端通过ELB与后端服务之间通过QUIC协商实现了HTTP/3通信。
    图3 验证通过QUIC协商实现了HTTP/3通信