赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 全球加速
  4. 实践教程
  5. 高级特性配置
  6. GA使用HTTP2协议连接后端服务

GA使用HTTP2协议连接后端服务

  • 高级特性配置
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

当您的HTTPS服务已配置全球加速,并且计划引入HTTP/2协议版本来进一步提升服务性能时,您可以在全球加速中配置HTTP/2协议版本。通过此配置,HTTPS服务可以充分利用HTTP/2的优势,大幅提升服务性能,有效降低延迟及网络开销,提升整体访问体验。

什么是HTTP/2协议

HTTP/2也被称为HTTP2.0,相对于HTTP/1.1新增了多路复用、压缩HTTP头、划分请求优先级和服务端推送等特性,解决了在HTTP/1.1中一直存在的问题,优化了请求性能,同时兼容了HTTP/1.1的语义。目前,Chrome、Edge、Safari和Firefox等浏览器已经支持HTTP/2协议。

HTTP/2的优势:

  • 二进制协议:相比于HTTP 1.x基于文本的解析,HTTP/2将所有的传输信息分割为更小的消息和帧,并对它们采用二进制格式编码。基于二进制可以使协议有更多的扩展性。例如,引入帧来传输数据和指令。

  • 多路复用(MultiPlexing):在HTTP1.x中,我们经常会使用到雪碧图、使用多个域名等方式来优化性能,因为浏览器限制了同一个域名下的请求数量,当页面需要请求很多资源的时候,队头阻塞(Head of line blocking)会导致在达到最大请求时,资源需要等待其他资源请求完成后才能继续发送。HTTP2.0中,基于二进制分帧层,HTTP2.0可以在共享TCP连接的基础上同时发送请求和响应,在另一端根据流标识符和首部将他们重新组装起来,通过该技术,可以避免HTTP旧版本的队头阻塞问题,极大提高传输性能。

  • Header压缩(Header compression):HTTP请求头带有大量信息,而且每次都要重复发送。HTTP/2采用HPACK格式进行压缩传输,通讯双方各自缓存一份头域索引表,相同的消息头只发送索引号,从而提高效率和速度。

如何协商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协议版本连接后端服务,从而充分体验该协议版本所带来的性能改进。

image

使用限制

全球加速配置HTTP/2协议版本连接后端服务,有以下使用限制:

  • 如果您的GA实例不支持选择连接后端服务的协议版本,可能是由于实例版本不支持。如需使用,请向商务经理申请升级实例。

  • 不支持WebSocket协议。

  • 不支持HTTP/2协议中的服务器推送(Server Push)特性。

  • 不支持加速以HTTP/2为基础的gRPC请求。

前提条件

  • 您已在证书中心购买或上传服务器证书。具体操作,请参见购买正式证书和上传和共享SSL证书。

  • 您已将证书文件上传至后端服务器。具体操作,请参见通过云助手上传文件到ECS实例。

  • 您的后端服务器已部署了HTTPS 443服务,并启用了HTTP/2协议版本。

    请确保已在后端服务器所属安全组规则入方向添加TCP 443端口。具体操作,请参见添加安全组规则。

    参考示例:在阿里云ECS中使用Nginx配置HTTPS 443服务并启用HTTP/2

    1. 执行以下命令,安装Nginx,并部署测试应用示例。

      yum install -y nginx
      cd /usr/share/nginx/html/
      echo "Hello World ! This is ECS." > index.html
    2. 执行以下命令,创建证书与私钥目录。

      mkdir -p /etc/pki/nginx/private/
    3. 执行以下命令,进入Nginx配置文件nginx.conf,修改协议版本配置,然后保存并退出。

      vim /etc/nginx/nginx.conf

      配置如下:

      # For more information on configuration, see:
      #   * Official English Documentation: http://nginx.org/en/docs/
      #   * Official Russian Documentation: http://nginx.org/ru/docs/
      
      user nginx;
      worker_processes auto;
      error_log /var/log/nginx/error.log;
      pid /run/nginx.pid;
      
      
      events {
          worker_connections 1024;
      }
      
      http {
          log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                            '$status $body_bytes_sent "$http_referer" '
                            '"$http_user_agent" "$http_x_forwarded_for" "$server_protocol"';
          access_log  /var/log/nginx/access.log  main;
          sendfile            on;
          tcp_nopush          on;
          tcp_nodelay         on;
          keepalive_timeout   65;
          types_hash_max_size 4096;
      
          include             /etc/nginx/mime.types;
          default_type        application/octet-stream;
          server {
              #启用HTTP/2协议版本
              listen       443 ssl http2;
              listen       [::]:443 ssl http2;
              server_name  _;
              root         /usr/share/nginx/html;
      
              #填写证书文件路径
              ssl_certificate "/etc/pki/nginx/<cert-file-name>.pem";
              #填写证书私钥文件路径
              ssl_certificate_key "/etc/pki/nginx/private/<cert-file-name>.key";
              ssl_session_cache shared:SSL:1m;
              ssl_session_timeout  10m;
              ssl_ciphers PROFILE=SYSTEM;
              ssl_prefer_server_ciphers on;
      
      
              error_page 404 /404.html;
                  location = /40x.html {
              }
      
              error_page 500 502 503 504 /50x.html;
                  location = /50x.html {
              }
          }
      
      }
    4. 执行以下命令,重启Nginx服务。

      systemctl restart nginx.service
  • 您已创建全球加速实例,并已将后端服务器添加为全球加速的终端节点,设置后端服务协议为HTTPS。具体操作,请参见创建和管理标准型全球加速实例。

  • 证书绑定的域名已完成DNS解析,即您的域名与全球加速实例分配的CNAME地址相互映射。具体操作,请参见配置CNAME。

配置HTTP/2协议连接后端服务

此处仅介绍本文场景所涉及的关键配置项,关于终端节点组配置项更多信息,请参见添加和管理智能路由类型监听的终端节点组。

  1. 登录全球加速管理控制台。

  2. 在实例列表页面,找到目标全球加速实例,在操作列单击配置监听。

  3. 在监听页签下,找到目标监听,然后在操作列单击编辑节点组。

  4. 在配置监听和协议配置向导页面,单击下一步。

  5. 在配置终端节点配置向导页面,配置协议版本为HTTP/2,然后单击下一步。

    选择HTTP2.png

  6. 在配置审核配置向导页面,确认信息,然后单击提交。

结果验证

您可以在终端节点组中配置协议版本为HTTP/2之前以及之后,分别执行以下操作步骤,以验证HTTP/2协议是否生效。

  1. 在中国香港地域客户端打开浏览器,输入https://<加速域名>,可以正常访问后端服务。

  2. 在美国硅谷地域的后端服务器打开命令行窗口,执行以下命令,查看最近一次的访问记录。

    通过返回的访问记录详情,可以查看访问请求转发至后端服务器所使用的协议版本。

    tail -n 1 /var/log/nginx/access.log

    配置协议版本前,返回访问记录如下:默认HTTP1.1回源.png配置协议版本为HTTP/2后,返回访问记录如下:

    HTTP2回源.png

相关文档

产品教程

  • 终端节点组配置项详细信息,请参见添加和管理智能路由类型监听的终端节点组。

  • 如需从HTTP快速升级到HTTP/3协议对外提供服务,提升服务质量与系统能力,可配置客户端接入GA的HTTP最大版本为HTTP/3,请参见GA使用HTTP/3协议提升应用系统访问体验。

API文档

  • CreateEndpointGroup:创建终端节点组。通过EndpointProtocolVersion参数指定连接后端服务的协议版本。

  • UpdateEndpointGroup:修改终端节点组的业务配置。通过EndpointProtocolVersion参数指定连接后端服务的协议版本。

  • DeleteEndpointGroup: 删除终端节点组。

相关文章

加速IPv6客户端访问IPv4服务 2025-04-22 18:05

如果您有IPv6客户端加速访问IPv4服务的需求,您可以将接入全球加速网络的加速IP配置为IPv6协议类型,即可实现IPv6转换服务。 使用限制

GA使用HTTP3协议提升应用系统访问体验 2025-04-22 18:05

QUIC协议是一种基于UDP的低延迟传输协议,而HTTP/3协议建立在QUIC协议之上,无需重连即可实现多路复用,提升资源的访问效率。在弱网络、Wi-Fi和移动网络频繁切换、高延迟丢包率高等场景下,您在用GA服务进行加速时可使用HTTP/3协议,加速应用访问、提升系统性能并改善用户体验。 功能简介

GA使用HTTP2协议连接后端服务 2025-04-22 18:05

当您的HTTPS服务已配置全球加速,并且计划引入HTTP/2协议版本来进一步提升服务性能时,您可以在全球加速中配置HTTP/2协议版本。通过此配置,HTTPS服务可以充分利用HTTP/2的优势,大幅提升服务性能,有效降低延迟及网络开销,提升整体访问体验。

使用GA端口映射提升应用灵活性与安全性 2025-04-22 18:05

出于安全考虑,企业通常需要将外部访问端口与后端应用端口进行隔离。您可以在GA中配置端口映射,自定义监听端口与后端应用端口的映射关系,提升应用部署的灵活性和安全性。 端口映射功能简介 默认情况下,GA会使用创建监听时指定的协议和端口范围,将访问流量转发至终端节点组。智能路由类型监听支持端口映射功能,您

多终端节点组流量调配使用示例 2025-04-22 18:05

当您的服务部署在多个地域时,您可以通过流量调配功能控制不同地域终端节点组的访问流量比例。 场景示例 假设某公司业务部署在北京和上海,服务

加速跨地域应用实现高可用容灾 2025-04-22 18:05

当您的应用跨地域部署时,可能会面临地域性网络故障导致的对应地域服务不可用问题。您可以使用全球加速服务(GA)加速跨地域部署的应用,并实现应用访问流量的多地域负载和高可用容灾。 背景信息

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号