En-têtes d'équilibreur de charge
Découvrez comment utiliser les en-têtes HTTP "X" et Host dans un équilibreur de charges.
Les demandes et les réponses HTTP incluent souvent des champs d'en-tête qui fournissent des informations contextuelles sur le message. RFC 2616 définit un ensemble standard de champs d'en-tête HTTP. Certains champs d'en-tête non standard commençant par X-
sont couramment utilisés. Le service d'équilibreur de charge ajoute ou modifie l'en-tête Host et les en-têtes X-
suivants lorsqu'il transmet des demandes à vos serveurs. Comme ces en-têtes sont toujours ajoutés et ne peuvent pas être désactivés, vous ne pouvez pas les supprimer ou les modifier à l'aide d'un jeu de règles.
Les demandes et les réponses HTTP incluent souvent des champs d'en-tête qui fournissent des informations contextuelles sur le message. RFC 2616 définit un ensemble standard de champs d'en-tête HTTP. Certains champs d'en-tête non standard commençant par X-
sont couramment utilisés. Le service Load Balancer ajoute ou change l'en-tête Host et les en-têtes X-
suivants lorsqu'il transmet les demandes à vos serveurs. Comme ces en-têtes sont toujours ajoutés et ne peuvent pas être désactivés, vous ne pouvez pas les supprimer ou les modifier à l'aide d'un jeu de règles.
X-Forwarded-For
Fournit la liste des adresses IP de connexion.
L'équilibreur de charge ajoute la dernière adresse homologue distante à la fin du champ X-Forwarded-For
de la demande entrante. L'adresse ajoutée est précédée d'une virgule et d'un espace. Si l'en-tête de la demande client n'inclut pas de champ X-Forwarded-For
, cette valeur est égale à la valeur X-Real-IP
. Le client à l'origine de la demande est la première adresse IP de la liste (la plus à gauche), à condition que le contenu du champ entrant soit digne de confiance. La dernière adresse correspond au dernier homologue (le plus récent), c'est-à-dire la machine à partir de laquelle l'équilibreur de charge a reçu la demande. Le format est le suivant :
X-Forwarded-For: original_client, proxy1, proxy2
Exemple de champ entrant :
X-Forwarded-For: 202.1.112.187
Exemple de champ où une adresse IP de proxy est ajoutée à la fin :
X-Forwarded-For: 202.1.112.187, 192.168.0.10
X-Forwarded-Host
Identifie l'hôte et le port d'origine demandés par le client dans l'en-tête de la demande HTTP Host
. Cet en-tête vous aide à trouver l'hôte d'origine, car le nom d'hôte ou le port du proxy inverse (équilibreur de charge) peut être différent du serveur d'origine qui gère la demande.
X-Forwarded-Host: www.oracle.com:8080
X-Forwarded-Port
Identifie le numéro de port du processus d'écoute que le client a utilisé pour se connecter à l'équilibreur de charge. Par exemple :
X-Forwarded-Port: 443
X-Forwarded-Proto
Identifie le protocole utilisé par le client pour se connecter à l'équilibreur de charge, à savoir http
ou https
. Par exemple :
X-Forwarded-Proto: https
X-Real-IP
Identifie l'adresse IP du client. Pour le service Load Balancer, le "client" est le dernier homologue distant.
L'équilibreur de charge intercepte le trafic entre le client et votre serveur. Par conséquent, les journaux d'accès du serveur incluent uniquement l'adresse IP de l'équilibreur de charge. L'en-tête X-Real-IP
fournit l'adresse IP du client. Par exemple :
X-Real-IP: 192.168.0.10
ID de demande X
L'ID de demande peut vous aider à suivre et à gérer une demande en fournissant un identificateur de demande unique exposé dans les en-têtes de demande et de réponse HTTP.
Lorsque l'ID de demande est activé, le nom d'en-tête par défaut X-Request-ID est inclus dans l'en-tête de demande HTTP de l'équilibreur de charge aux réponses d'en-tête HTTP et back-end. Si cette option n'est pas activée, l'équilibreur de charge n'ajoute pas cet en-tête d'ID de demande unique à la demande transmise au back-end de l'équilibreur de charge ou à la réponse renvoyée.
Vous pouvez saisir un autre nom d'en-tête au lieu d'utiliser la valeur par défaut. Tout nom d'en-tête personnalisé doit commencer par "X-".
Host
Identifie l'hôte d'origine et éventuellement le port demandés par le client dans l'en-tête de la demande HTTP Host. Par exemple :
Host: www.oracle.com