Tous les produits
Search
Centre de documentation

Global Accelerator:HTTP/2 pour les connexions backend

Dernière mise à jour :Sep 20, 2026

Activez le protocole HTTP/2 pour les connexions backend dans Global Accelerator afin d'améliorer les performances HTTPS, de réduire la latence et de diminuer la surcharge réseau.

Qu'est-ce que le protocole HTTP/2

Le protocole HTTP/2, également appelé HTTP 2.0, s'appuie sur HTTP/1,1 en ajoutant le multiplexage, la compression des en-têtes, la priorisation des requêtes et le mécanisme Server Push. Ces fonctionnalités résolvent des problèmes persistants de HTTP/1,1, améliorant ainsi les performances des requêtes tout en restant compatibles avec la sémantique de HTTP/1,1. Les navigateurs modernes tels que Chrome, Edge, Safari et Firefox prennent tous en charge le protocole HTTP/2.

Avantages du protocole HTTP/2 :

  • Protocole binaire : Contrairement à HTTP/1.x basé sur du texte, HTTP/2 encode toutes les informations transmises sous forme de messages et de trames binaires. Ce format binaire offre une plus grande extensibilité, permettant par exemple aux trames de transporter à la fois des données et des instructions.

  • Multiplexage : Dans HTTP/1.x, les navigateurs limitent les requêtes simultanées vers un même domaine, ce qui provoque un blocage de tête de ligne lorsqu'une page nécessite de nombreuses ressources. HTTP/2 résout ce problème grâce à une couche de framing binaire qui permet l'envoi simultané de plusieurs requêtes et réponses sur une connexion TCP partagée. Les flux sont réassemblés à l'autre extrémité à l'aide d'identifiants de flux et d'en-têtes, évitant ainsi le blocage de tête de ligne et améliorant considérablement les performances de transmission.

  • Compression des en-têtes : Les en-têtes des requêtes HTTP contiennent une grande quantité d'informations répétitives. HTTP/2 utilise le format HPACK pour compresser ces en-têtes. Le client et le serveur maintiennent une table mise en cache des champs d'en-tête et n'envoient que l'index d'un en-tête connu, ce qui améliore l'efficacité et la vitesse.

Négociation HTTP/2

Pour les connexions HTTPS, le client et le serveur doivent établir une connexion TLS (Transport Layer Security) avant d'envoyer des données applicatives. Pour prendre en charge le protocole HTTP/2, la négociation utilise le protocole ALPN (Application-Layer Protocol Negotiation) afin de déterminer la version de protocole à utiliser.

Lorsque vous activez le protocole HTTP/2 dans Global Accelerator, celui-ci spécifie h2 dans le champ ALPN du message ClientHello lors de la négociation TLS. Global Accelerator ignore ensuite la version de protocole renvoyée par le serveur dans le message ServerHello et force une connexion HTTP/2 vers le service backend.

Cas d'utilisation

Cette rubrique s'appuie sur le scénario suivant. Une entreprise dont le siège social se trouve aux États-Unis (Silicon Valley) héberge son site web HTTPS sur des instances ECS Alibaba Cloud. La majorité de ses clients sont situés en Chine (Hong Kong). L'entreprise utilise Global Accelerator pour atténuer les problèmes réseau tels que la latence, la gigue et la perte de paquets causés par l'instabilité des réseaux publics transfrontaliers.

Afin d'améliorer davantage les performances du site web et l'expérience utilisateur, l'entreprise prévoit d'adopter le protocole HTTP/2.

Par défaut, lorsque Global Accelerator est configuré avec HTTPS comme protocole de service backend, il se connecte aux services backend via HTTP/1,1. L'entreprise doit désormais modifier la configuration de son instance Global Accelerator pour spécifier HTTP/2 pour les connexions backend et tirer pleinement parti des améliorations de performances offertes par ce protocole.

image

Limites

Les limites suivantes s'appliquent aux connexions backend HTTP/2 dans Global Accelerator :

  • Si l'option IP Version n'est pas disponible pour votre instance Global Accelerator, celle-ci peut ne pas prendre en charge cette fonctionnalité. Pour l'activer, contactez votre gestionnaire de compte afin de mettre à niveau votre instance.

  • Le protocole WebSocket n'est pas pris en charge.

  • La fonctionnalité Server Push de HTTP/2 n'est pas prise en charge.

  • Les requêtes gRPC basées sur HTTP/2 ne peuvent pas être accélérées.

Prérequis

  • Achetez ou importez un certificat de serveur dans la console Certificate Management Service. Pour plus d'informations, consultez les rubriques Acheter un certificat officiel et Importer, synchroniser et partager des certificats SSL.

  • Importez les fichiers de certificat sur votre serveur backend. Pour plus d'informations, consultez la rubrique Utiliser Cloud Assistant pour importer un fichier vers une instance ECS.

  • Un service HTTPS est déployé sur le port 443 de votre serveur backend, avec la version de protocole HTTP/2 activée.

    Assurez-vous d'avoir ajouté une règle autorisant le trafic entrant sur le port TCP 443 dans le groupe de sécurité du serveur backend. Pour plus d'informations, consultez la rubrique Ajouter une règle de groupe de sécurité.

    Exemple : Configurer un service HTTPS sur le port 443 et activer HTTP/2 dans Nginx sur une instance ECS Alibaba Cloud

    1. Exécutez les commandes suivantes pour installer Nginx et déployer une application de test exemple.

      yum install -y nginx
      cd /usr/share/nginx/html/
      echo "Hello World ! This is ECS." > index.html
    2. Exécutez la commande suivante pour créer un répertoire destiné au certificat et à la clé privée.

      mkdir -p /etc/pki/nginx/private/
    3. Exécutez la commande suivante pour modifier le fichier de configuration Nginx nginx.conf, ajuster la configuration de la version du protocole, puis enregistrer et quitter.

      vim /etc/nginx/nginx.conf

      Utilisez la configuration suivante :

      # 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. Exécutez la commande suivante pour redémarrer le service Nginx.

      systemctl restart nginx.service
  • Créez une instance Global Accelerator, ajoutez le serveur backend en tant que point de terminaison et définissez le protocole de service backend sur HTTPS. Pour plus d'informations, consultez la rubrique Créer et gérer des instances Global Accelerator standard.

  • Assurez-vous que votre domaine est mappé à l'adresse CNAME attribuée par l'instance Global Accelerator. Pour plus d'informations, consultez la rubrique Ajouter un enregistrement CNAME.

Configurer HTTP/2 pour les connexions backend

Cette section couvre uniquement la configuration clé pour ce scénario. Pour plus d'informations sur les paramètres des groupes de points de terminaison, consultez la rubrique Ajouter et gérer des groupes de points de terminaison pour les écouteurs à routage intelligent.

  1. Connectez-vous à la console Global Accelerator.

  2. Sur la page Instances, localisez l'instance GA que vous souhaitez gérer et cliquez sur Configure Listener dans la colonne Actions.

  3. Dans l'onglet Listeners, recherchez l'écouteur cible, puis cliquez sur Modify Endpoint Group dans la colonne Actions.

  4. À l'étape Configure Listener & Protocol de l'assistant, cliquez sur Next.

  5. À l'étape Configure Endpoint Group de l'assistant, définissez IP Version sur HTTP/2, puis cliquez sur Next.

    Définissez Backend Service Protocol sur HTTPS et IP Version sur HTTP/2.

  6. À l'étape Configuration Review, confirmez la configuration et cliquez sur Submit.

Vérifier les résultats

Pour vérifier que le protocole HTTP/2 est activé, examinez les journaux d'accès backend avant et après avoir modifié la version du protocole.

  1. Depuis un client situé dans la région Chine (Hong Kong), ouvrez un navigateur et saisissez https://<nom de domaine accéléré>. Vous devriez pouvoir accéder normalement au service backend.

  2. Sur le serveur backend situé dans la région États-Unis (Silicon Valley), ouvrez une fenêtre de ligne de commande et exécutez la commande suivante pour afficher l'enregistrement d'accès le plus récent.

    L'enregistrement d'accès indique la version du protocole utilisée pour transférer la requête vers le serveur backend.

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

    Avant de configurer la version du protocole, le journal d'accès indique que la requête back-to-origin utilise le protocole 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"

    Après avoir configuré la version du protocole sur HTTP/2, le journal d'accès indique que la requête back-to-origin utilise 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"

Documents connexes

Tutoriels

Référence API

  • CreateEndpointGroup : Crée un groupe de points de terminaison. Utilisez le paramètre EndpointProtocolVersion pour spécifier la version du protocole de connexion aux services backend.

  • UpdateEndpointGroup : Modifie la configuration commerciale d'un groupe de points de terminaison. Utilisez le paramètre EndpointProtocolVersion pour spécifier la version du protocole de connexion aux services backend.

  • DeleteEndpointGroup : Supprime un groupe de points de terminaison.