Todos os produtos
Search
Central de documentação

Global Accelerator:HTTP/2 for backend connections

Última atualização: Sep 20, 2026

Ative o HTTP/2 para conexões de backend no Global Accelerator e melhore o desempenho de HTTPS, reduza a latência e diminua a sobrecarga de rede.

O que é HTTP/2

O HTTP/2, também conhecido como HTTP 2.0, expande o HTTP/1,1 com multiplexação, compressão de cabeçalhos, priorização de requisições e server push. Esses recursos resolvem limitações históricas do HTTP/1,1, melhorando o desempenho das requisições e mantendo compatibilidade com a semântica do HTTP/1,1. Navegadores modernos como Chrome, Edge, Safari e Firefox são compatíveis com HTTP/2.

Vantagens do HTTP/2:

  • Protocolo binário: ao contrário do HTTP/1,x baseado em texto, o HTTP/2 codifica todas as informações transmitidas em mensagens e frames binários. Esse formato binário oferece maior extensibilidade, permitindo, por exemplo, que frames transportem dados e instruções simultaneamente.

  • Multiplexação: no HTTP/1,x, os navegadores limitam as requisições simultâneas por domínio, causando bloqueio de head-of-line quando uma página precisa carregar muitos recursos. O HTTP/2 resolve isso com uma camada de framing binário que permite enviar múltiplas requisições e respostas de forma concorrente em uma única conexão TCP compartilhada. Os streams são remontados na outra extremidade por meio de identificadores e cabeçalhos, o que elimina o bloqueio de head-of-line e melhora significativamente o desempenho de transmissão.

  • Compressão de cabeçalhos: os cabeçalhos de requisições HTTP contêm grande quantidade de informações repetitivas. O HTTP/2 usa o formato HPACK para comprimi-los. Tanto o cliente quanto o servidor mantêm uma tabela de campos de cabeçalho em cache e transmitem apenas o índice de um cabeçalho já conhecido, aumentando a eficiência e a velocidade.

Negociação HTTP/2

Em conexões HTTPS, o cliente e o servidor precisam estabelecer uma conexão Transport Layer Security (TLS) antes de enviar dados de aplicação. Para dar suporte ao HTTP/2, o handshake usa Application-Layer Protocol Negotiation (ALPN) para determinar qual versão do protocolo será utilizada.

Ao ative o HTTP/2 no Global Accelerator, ele especifique h2 no campo ALPN da mensagem ClientHello durante o handshake TLS. O Global Accelerator ignora a versão do protocolo retornada pelo servidor na mensagem ServerHello, forçando uma conexão HTTP/2 com o service de backend.

Caso de uso

Este tópico utiliza o seguinte cenário. Uma empresa com sede em US (Silicon Valley) hospeda seu site HTTPS em instâncias ECS da Alibaba Cloud. A maior parte dos seus clientes está localizada em China (Hong Kong). A empresa usa o Global Accelerator para mitigar problemas de rede como latência, jitter e perda de pacotes causados pela instabilidade de redes públicas internacionais.

Para melhorar ainda mais o desempenho do site e a experiência dos usuários, a empresa pretende adotar o protocolo HTTP/2.

Por padrão, quando o Global Accelerator é configure com HTTPS como protocolo de service de backend, ele se conecta aos serviços de backend usando HTTP/1,1. A empresa precisa modifique a configuração da sua instância do Global Accelerator para especifique HTTP/2 nas conexões de backend e aproveitar ao máximo as melhorias de desempenho do protocolo.

image

Limitações

As seguintes limitações se aplicam às conexões de backend HTTP/2 no Global Accelerator:

  • Se a opção IP Version não estiver disponível para sua instância do Global Accelerator, ela pode não ser compatível com este recurso. Para ative-lo, entre em contato com seu gerente de conta para atualizar sua instância.

  • O protocolo WebSocket não é compatível.

  • O recurso Server Push do HTTP/2 não é compatível.

  • Requisições gRPC baseadas em HTTP/2 não podem ser aceleradas.

Pré-requisitos

  • Adquira ou faça upload de um certificado de servidor no console do Certificate Management Service. Para mais informações, consulte Purchase an official certificate e Upload, sync, and share SSL certificates.

  • Faça upload dos arquivos de certificado para seu servidor de backend. Para mais informações, consulte Use Cloud Assistant to upload a file to an ECS instance.

  • Seu servidor de backend deve ter um service HTTPS implantado na porta 443 com a versão do protocolo HTTP/2 ativada.

    Verifique se há uma regra que permita tráfego de entrada na porta TCP 443 no grupo de segurança do servidor de backend. Para mais informações, consulte Add a security group rule.

    Exemplo: configure um service HTTPS na porta 443 e ative o HTTP/2 no Nginx em uma instância ECS da Alibaba Cloud

    1. Execute os seguintes comandos para instale o Nginx e implante uma aplicação de teste de exemplo.

      yum install -y nginx
      cd /usr/share/nginx/html/
      echo "Hello World ! This is ECS." > index.html
    2. Execute o seguinte comando para crie um diretório para o certificado e a chave privada.

      mkdir -p /etc/pki/nginx/private/
    3. Execute o seguinte comando para edite o arquivo de configure do Nginx nginx.conf, modifique a configuração da versão do protocolo e salve e saia.

      vim /etc/nginx/nginx.conf

      Utilize a seguinte configuração:

      # 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 {
              # Enable the HTTP/2 protocol version.
              listen       443 ssl http2;
              listen       [::]:443 ssl http2;
              server_name  _;
              root         /usr/share/nginx/html;
              # Enter the path to your certificate file.
              ssl_certificate "/etc/pki/nginx/<cert-file-name>.pem";
              # Enter the path to your certificate private key file.
              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. Execute o seguinte comando para reiniciar o service do Nginx.

      systemctl restart nginx.service
  • Crie uma instância do Global Accelerator, adicione o servidor de backend como endpoint e defina o protocolo de service de backend como HTTPS. Para mais informações, consulte Create and manage standard Global Accelerator instances.

  • Certifique-se de que seu domínio esteja mapeado para o endereço CNAME atribuído pela instância do Global Accelerator. Para mais informações, consulte Add a CNAME record.

Configure HTTP/2 para conexões de backend

Esta seção aborda apenas as configurações essenciais para este cenário. Para mais informações sobre as configurações do grupo de endpoints, consulte Add and manage endpoint groups for intelligent-routing listeners.

  1. Acesse o Global Accelerator console.

  2. Na página Instances, localize a instância do GA que deseja gerencie e clique em Configure Listener na coluna Actions.

  3. Na aba Listeners, localize o listener de destino e clique em Modify Endpoint Group na coluna Actions.

  4. Na etapa Configure Listener & Protocol do assistente, clique em Next.

  5. Na etapa Configure Endpoint Group do assistente, defina IP Version como HTTP/2 e clique em Next.

    Defina Backend Service Protocol como HTTPS e IP Version como HTTP/2.

  6. Na etapa Configuration Review, confirme as configurações e clique em Submit.

Verificar os resultados

Para confirmar que o HTTP/2 está ativo, verifique os logs de acesso do backend antes e depois de alterar a versão do protocolo.

  1. A partir de um cliente na região China (Hong Kong), abra um navegador e insira https://<accelerated domain name>. O service de backend deve estar acessível normalmente.

  2. No servidor de backend na região US (Silicon Valley), abra uma janela de linha de comando e execute o seguinte comando para visualize o registro de acesso mais recente.

    O registro de acesso exibe a versão do protocolo usada para encaminhar a requisição ao servidor de backend.

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

    Antes de configure a versão do protocolo, o log de acesso mostra que a requisição de back-to-origin usa o protocolo HTTP/1.1.

    [root@iZxxx ~]# tail -n 1 /var/log/nginx/access.log
    172.20.xxx - - [30/Jul/2024:14:40:40 +0800] "GET / HTTP/1.1" 200 27 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0 Safari/537.36 Edg/126.0.0.0" "47.76.xxx"

    Após configure a versão do protocolo para HTTP/2, o log de acesso mostra que a requisição de back-to-origin passa a usar HTTP/2,0.

    [root@iZrj95wxxx xxx  ~]# tail -n 1 /var/log/nginx/access.log
    172.20.xxx.xxx - - [30/Jul/2024:14:42:55 +0800] "GET / HTTP/2.0" 200 27 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0 Safari/537.36 Edg/126.0.0" "47.76.xxx.xxx"

Documentos relacionados

Tutorials

API reference

  • CreateEndpointGroup: cria um grupo de endpoints. Use o parâmetro EndpointProtocolVersion para especifique a versão do protocolo de conexão com os serviços de backend.

  • UpdateEndpointGroup: modifique a configuração de negócios de um grupo de endpoints. Use o parâmetro EndpointProtocolVersion para especifique a versão do protocolo de conexão com os serviços de backend.

  • DeleteEndpointGroup: exclui um grupo de endpoints.