Cette rubrique décrit les en-têtes HTTP supplémentaires pris en charge par Application Load Balancer (ALB) et explique comment les configurer pour un écouteur. Utilisez ces en-têtes pour mettre en œuvre des fonctionnalités spécifiques selon vos besoins.
En-têtes ALB pris en charge
Les en-têtes HTTP sont des champs situés dans la section d'en-tête d'une requête ou d'une réponse HTTP. Vous pouvez personnaliser les en-têtes pour répondre à des besoins spécifiques, ce qui peut entraîner l'utilisation d'en-têtes HTTP supplémentaires par les serveurs web et les navigateurs. Le tableau suivant décrit les en-têtes HTTP supplémentaires pris en charge par ALB ainsi que leurs fonctions.
|
Champ d'en-tête |
Description |
Protocoles de l'écouteur |
|
X-Forwarded-For |
Permet à l'écouteur d'utiliser l'en-tête
Format :
Pour obtenir des instructions sur la récupération de l'adresse IP réelle du client, consultez la rubrique Récupérer l'IP du client sur un serveur backend. |
|
|
SLB-ID |
Ajoute l'en-tête |
|
|
X-Forwarded-Proto |
Ajoute l'en-tête Format :
Cas d'utilisation typique : une instance ALB utilise un écouteur HTTPS, et la communication entre l'écouteur et son groupe de serveurs backend utilise HTTP. Dans ce scénario, le serveur backend reçoit la requête avec le protocole HTTP. Si le serveur backend est configuré avec une règle de redirection automatique de HTTP vers HTTPS, il pourrait déterminer à tort que le client utilise HTTP, provoquant ainsi une boucle de redirection. En activant l'en-tête |
|
|
X-Forwarded-Port |
Ajoute l'en-tête Format :
|
|
|
X-Forwarded-Host |
Ajoute l'en-tête Format :
|
|
|
X-Forwarded-Client-srcport |
Ajoute l'en-tête Format :
|
|
|
X-Forwarded-Clientcert-subjectdn |
Activez le champ d'en-tête Après avoir activé cet en-tête, vous devez saisir un nom d'en-tête HTTP personnalisé. |
HTTPS |
|
X-Forwarded-Clientcert-issuerdn |
Activez le champ d'en-tête Après avoir activé cet en-tête, vous devez saisir un nom d'en-tête HTTP personnalisé. |
HTTPS |
|
X-Forwarded-Clientcert-fingerprint |
Activez le champ d'en-tête Après avoir activé cet en-tête, vous devez saisir un nom d'en-tête HTTP personnalisé. |
HTTPS |
|
X-Forwarded-Clientcert-clientverify |
Activez le champ d'en-tête Après avoir activé cet en-tête, vous devez saisir un nom d'en-tête HTTP personnalisé. |
HTTPS |
Les en-têtes HTTP supplémentaires mentionnés ci-dessus sont configurés à l'aide de commutateurs au niveau de l'écouteur. Lorsqu'ils sont activés, ALB ajoute automatiquement les en-têtes correspondants aux requêtes transférées au serveur backend. Si vous devez personnaliser les valeurs des en-têtes, par exemple en spécifiant le protocole ou le port de la requête d'origine, définissez-les manuellement en utilisant l'action Insérer un en-tête dans une règle de transfert. Les commutateurs au niveau de l'écouteur conviennent à la plupart des scénarios de transit, tandis que les règles de transfert sont idéales pour les scénarios nécessitant un contrôle granulaire des valeurs des en-têtes. Ces paramètres se trouvent respectivement dans la section Paramètres avancés de la configuration de l'écouteur et dans l'éditeur de règles de transfert.
-
Nous vous recommandons de faire en sorte que vos serveurs backend respectent la spécification HTTP et traitent les clés d'en-tête HTTP sans distinction de casse.
L'en-tête X-Forwarded-For qu'ALB transmet aux serveurs backend commence toujours par une lettre majuscule.
Pour les autres en-têtes HTTP supplémentaires, si la requête du client contient déjà l'un de ces en-têtes, ALB conserve sa casse d'origine lors du transfert. Sinon, ALB ajoute l'en-tête en utilisant la casse indiquée dans le tableau ci-dessus.
Lorsque vous activez X-Forwarded-Clientcert-subjectdn, X-Forwarded-Clientcert-issuerdn, X-Forwarded-Clientcert-fingerprint ou X-Forwarded-Clientcert-clientverify, vous ne pouvez pas définir le nom de l'en-tête HTTP personnalisé sur l'un des champs réservés suivants :
slb-id,slb-ip,x-forwarded-for,x-forwarded-proto,x-forwarded-eip,x-forwarded-port,x-forwarded-client-srcport,x-forwarded-host,connection,upgrade,content-length,transfer-encoding,keep-alive,te,host,cookie,remoteipouauthority.-
Ajouter un en-tête dans la console
Ajouter un en-tête lors de la création d'un écouteur
Connectez-vous à la console ALB.
Dans la barre de navigation supérieure, sélectionnez la région où l'instance ALB est déployée.
-
Utilisez l'une des méthodes suivantes pour ouvrir l'assistant de configuration de l'écouteur :
Sur la page Instances, recherchez l'instance que vous souhaitez gérer et cliquez sur Create Listener dans la colonne Actions.
Sur la page Instances, cliquez sur l'ID de l'instance cible. Sous l'onglet Listener, cliquez sur Create Listener.
-
Dans l'assistant Configure Listener, configurez les paramètres suivants et cliquez sur Next.
Paramètre
Description
Listener Protocol
Sélectionnez un protocole pour l'écouteur.
Advanced Settings
Cliquez sur Modify pour développer les paramètres avancés.
Custom HTTP Header
Sélectionnez les en-têtes HTTP supplémentaires que vous souhaitez activer en fonction de vos besoins métier.
RemarqueCette section décrit uniquement les paramètres liés aux en-têtes. Pour plus d'informations sur les autres paramètres, consultez les rubriques suivantes :
Suivez les instructions à l'écran pour terminer la création de l'écouteur.
Ajouter un en-tête à un écouteur existant
Connectez-vous à la console ALB.
Dans la barre de navigation supérieure, sélectionnez la région où l'instance ALB est déployée.
Sur la page Instances, cliquez sur l'ID de l'instance cible.
Sous l'onglet Listener, recherchez l'écouteur cible et choisissez
>Modify Listener dans la colonne Actions.Dans la boîte de dialogue Modify Listener, cliquez sur Modify à droite de Advanced Settings.
Dans la section Custom HTTP Header, activez ou désactivez les en-têtes selon vos besoins, puis cliquez sur Save.
Ajouter un en-tête à l'aide d'une API
Vous pouvez configurer des en-têtes supplémentaires lors de la création d'un écouteur ou modifier la configuration des en-têtes d'un écouteur existant.
Créer un écouteur : Appelez l'opération d'API CreateListener et configurez le paramètre XForwardedForConfig.
Modifier un écouteur existant : Appelez l'opération d'API UpdateListenerAttribute pour mettre à jour le paramètre XForwardedForConfig.
Références
Console
Pour transférer des requêtes HTTP via une instance ALB, consultez la rubrique Ajouter un écouteur HTTP.
Pour transférer des requêtes HTTPS via une instance ALB, consultez la rubrique Ajouter un écouteur HTTPS.
Pour transférer des requêtes QUIC via une instance ALB, consultez la rubrique Ajouter un écouteur QUIC.
API
CreateListener : Crée un écouteur HTTP, HTTPS ou QUIC. Vous pouvez ajouter des en-têtes HTTP en définissant le paramètre XForwardedForConfig.
UpdateListenerAttribute : Met à jour la configuration d'un écouteur. Vous pouvez mettre à jour le paramètre XForwardedForConfig pour modifier la configuration des en-têtes.