Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Le protocole proxy est un protocole Internet utilisé pour exécuter des informations de connexion de la source demandant la connexion à la destination pour laquelle la connexion a été demandée. Elastic Load Balancing utilise le protocole proxy version 1, qui utilise un format d'en-tête lisible par l'homme.
Par défaut, lorsque vous utilisez le protocole TCP (Transmission Control Protocol) ou SSL (Secure Sockets Layer) pour les connexions frontales et principales, votre Classic Load Balancer transfère les demandes aux instances sans modifier les en-têtes de demande. Si vous activez le protocole proxy, un en-tête compréhensible par les utilisateurs est ajouté à l'en-tête de demande avec des informations de connexion telles que l'adresse IP source, l'adresse IP de destination et les numéros de ports. L'en-tête est ensuite envoyé à l'instance dans le cadre de la demande.
Note
AWS Management Console Ne prend pas en charge l'activation du protocole proxy.
Table des matières
En-tête du protocole proxy
L'en-tête du protocole proxy vous aide à identifier l'adresse IP d'un client lorsque votre équilibreur de charge utilise TCP pour les connexions principales. Comme des équilibreurs de charge interceptent le trafic entre les clients et vos instances, les journaux d'accès de votre instance contiennent l'adresse IP de l'équilibreur de charge, et non celle du client d'origine. Vous pouvez analyser la première ligne de la demande pour extraire l'adresse IP et le numéro de port de votre client.
L'adresse du proxy dans l'en-tête de IPv6 est l' IPv6 adresse publique de votre équilibreur de charge. Cette IPv6 adresse correspond à l'adresse IP résolue à partir du nom DNS de votre équilibreur de charge, qui commence par ipv6
oudualstack
. Si le client se connecte à IPv4, l'adresse du proxy dans l'en-tête est l' IPv4 adresse privée de l'équilibreur de charge, qui ne peut pas être résolue par une recherche DNS.
La ligne du protocole proxy est une ligne unique qui se termine par un retour chariot et un saut de ligne ("\r\n"
), au format suivant :
PROXY_STRING + single space + INET_PROTOCOL + single space + CLIENT_IP + single space + PROXY_IP + single space + CLIENT_PORT + single space + PROXY_PORT + "\r\n"
Exemple : IPv4
Voici un exemple de ligne de protocole proxy pour IPv4.
PROXY TCP4 198.51.100.22 203.0.113.7 35646 80\r\n
Prérequis pour l'activation du protocole proxy
Avant de commencer, vous devez exécuter les actions suivantes :
-
Vérifiez que votre équilibreur de charge n'est pas situé derrière un serveur proxy avec le protocole proxy activé. Si le protocole proxy est activé sur le serveur proxy et l'équilibreur de charge, l'équilibreur de charge ajoute un autre en-tête à la demande, qui a déjà un en-tête du serveur proxy. En fonction de la configuration de votre instance, cette duplication peut entraîner des erreurs.
-
Vérifiez que vos instances peuvent traiter les informations du protocole proxy.
-
Vérifiez que les paramètres de votre Écouteur prennent en charge le protocole proxy. Pour de plus amples informations, veuillez consulter Configurations d'Écouteur pour Classic Load Balancers.
Activer le protocole proxy à l'aide de l'interface AWS CLI
Pour activer le protocole proxy, vous devez créer une politique de type ProxyProtocolPolicyType
, puis activer la stratégie sur le port d'instance.
Utilisez la procédure suivante pour créer une nouvelle stratégie pour votre équilibreur de charge de type ProxyProtocolPolicyType
, définissez la stratégie nouvellement créée sur l'instance sur le port 80
et vérifiez que la stratégie est activée.
Pour activer le protocole proxy pour votre équilibreur de charge
-
(Facultatif) Utilisez la commande describe-load-balancer-policy-types suivante pour répertorier les politiques prises en charge par Elastic Load Balancing :
aws elb describe-load-balancer-policy-types
La réponse inclut les noms et les descriptions des types de stratégie pris en charge. Voici la sortie affichée pour le type
ProxyProtocolPolicyType
:{ "PolicyTypeDescriptions": [ ... { "PolicyAttributeTypeDescriptions": [ { "Cardinality": "ONE", "AttributeName": "ProxyProtocol", "AttributeType": "Boolean" } ], "PolicyTypeName": "ProxyProtocolPolicyType", "Description": "Policy that controls whether to include the IP address and port of the originating request for TCP messages. This policy operates on TCP/SSL listeners only" }, ... ] }
-
Utilisez la create-load-balancer-policycommande suivante pour créer une politique qui active le protocole proxy :
aws elb create-load-balancer-policy --load-balancer-name
my-loadbalancer
--policy-namemy-ProxyProtocol-policy
--policy-type-name ProxyProtocolPolicyType --policy-attributes AttributeName=ProxyProtocol,AttributeValue=true -
Utilisez la for-backend-server commande set-load-balancer-policies- suivante pour activer la politique nouvellement créée sur le port spécifié. Notez que cette commande remplace l'ensemble actuel de stratégies activées. Par conséquent, l'option
--policy-names
doit spécifier la stratégie que vous ajoutez à la liste (par exemple,my-ProxyProtocol-policy
) et les stratégies actuellement activées (par exemple,my-existing-policy
).aws elb set-load-balancer-policies-for-backend-server --load-balancer-name
my-loadbalancer
--instance-port80
--policy-namesmy-ProxyProtocol-policy my-existing-policy
-
(Facultatif) Utilisez la describe-load-balancerscommande suivante pour vérifier que le protocole proxy est activé :
aws elb describe-load-balancers --load-balancer-name
my-loadbalancer
La réponse inclut les informations suivantes qui montrent que la stratégie
my-ProxyProtocol-policy
est associée au port80
.{ "LoadBalancerDescriptions": [ { ... "BackendServerDescriptions": [ { "InstancePort": 80, "PolicyNames": [ "my-ProxyProtocol-policy" ] } ], ... } ] }
Désactiver le protocole proxy à l'aide de l'interface AWS CLI
Vous pouvez désactiver les stratégies associées à votre instance, puis les activer ultérieurement.
Pour désactiver la politique de protocole proxy
-
Utilisez la for-backend-server commande set-load-balancer-policies- suivante pour désactiver la politique du protocole proxy en l'omettant dans l'
--policy-names
option, mais en incluant les autres politiques qui doivent rester activées (par exemple,my-existing-policy
).aws elb set-load-balancer-policies-for-backend-server --load-balancer-name
my-loadbalancer
--instance-port80
--policy-namesmy-existing-policy
S'il n'existe aucune autre stratégie à activer, spécifiez une chaîne vide avec l'option
--policy-names
comme suit :aws elb set-load-balancer-policies-for-backend-server --load-balancer-name
my-loadbalancer
--instance-port80
--policy-names "[]" -
(Facultatif) Utilisez la describe-load-balancerscommande suivante pour vérifier que la politique est désactivée :
aws elb describe-load-balancers --load-balancer-name
my-loadbalancer
La réponse inclut les informations suivantes qui montrent qu'aucun port n'est associé à la stratégie .
{ "LoadBalancerDescriptions": [ { ... "BackendServerDescriptions": [], ... } ] }