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
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.
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é.
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.
Connectez-vous à la console Global Accelerator.
Sur la page Instances, localisez l'instance GA que vous souhaitez gérer et cliquez sur Configure Listener dans la colonne Actions.
Dans l'onglet Listeners, recherchez l'écouteur cible, puis cliquez sur Modify Endpoint Group dans la colonne Actions.
À l'étape Configure Listener & Protocol de l'assistant, cliquez sur Next.
-
À 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.
À 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.
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.-
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.logAvant 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
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.
Pour mettre à niveau les connexions côté client vers HTTP/3, définissez la version HTTP maximale pour l'accès client à Global Accelerator sur HTTP/3. Pour plus d'informations, consultez la rubrique Utiliser HTTP/3 pour améliorer l'expérience d'accès de vos applications.
Référence API
CreateEndpointGroup : Crée un groupe de points de terminaison. Utilisez le paramètre
EndpointProtocolVersionpour 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
EndpointProtocolVersionpour spécifier la version du protocole de connexion aux services backend.DeleteEndpointGroup : Supprime un groupe de points de terminaison.