Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Configura il protocollo proxy per il tuo Classic Load Balancer
Il protocollo proxy è un protocollo internet utilizzato per trasportare informazioni di connessione dall'origine che richiede la connessione alla destinazione per la quale la connessione è stata richiesta. Elastic Load Balancing utilizza il protocollo proxy versione 1, che adotta un formato di intestazione leggibile.
Per impostazione predefinita, quando si utilizza Transmission Control Protocol (TCP) per connessioni front-end e back-end, Classic Load Balancer inoltra le richieste alle istanze senza modificare le intestazioni delle richieste. Se abiliti il protocollo proxy, alla richiesta viene aggiunta un'intestazione leggibile con le informazioni di connessione, ad esempio l'indirizzo IP di origine, l'indirizzo IP di destinazione e i numeri di porta. L'intestazione viene quindi inviata all'istanza come parte della richiesta.
Nota
Non supporta l'abilitazione del protocollo proxy. AWS Management Console
Indice
Intestazione del protocollo proxy
L'intestazione del protocollo proxy consente di identificare l'indirizzo IP di un client quando si dispone di un sistema di bilanciamento del carico che lo utilizza TCP per le connessioni di back-end. Poiché i bilanciatori del carico intercettano il traffico tra i client e le istanze, i log di accesso della tua istanza contengono l'indirizzo IP del load balancer anziché il client di origine. È possibile analizzare la prima riga della richiesta per recuperare l'indirizzo IP e il numero di porta del client.
L'indirizzo del proxy nell'intestazione di IPv6 è l'IPv6indirizzo pubblico del sistema di bilanciamento del carico. Questo IPv6 indirizzo corrisponde all'indirizzo IP che viene risolto in base al DNS nome del sistema di bilanciamento del carico, che inizia con o. ipv6
dualstack
Se il client si connette conIPv4, l'indirizzo del proxy nell'intestazione è l'IPv4indirizzo privato del load balancer, che non è risolvibile tramite una ricerca. DNS
La riga del protocollo proxy è una riga singola che termina con un'andata a capo e un feed di riga ("\r\n"
) e ha il formato seguente:
PROXY_STRING + single space + INET_PROTOCOL + single space + CLIENT_IP + single space + PROXY_IP + single space + CLIENT_PORT + single space + PROXY_PORT + "\r\n"
Esempio: IPv4
Di seguito è riportato un esempio della riga del protocollo proxy perIPv4.
PROXY TCP4 198.51.100.22 203.0.113.7 35646 80\r\n
Prerequisiti per l'abilitazione del protocollo proxy
Prima di iniziare, esegui queste attività:
-
Verifica che il tuo load balancer non si trovi dietro un server proxy con il protocollo proxy abilitato. Se il protocollo proxy è abilitato sia sul server proxy sia sul load balancer, quest'ultimo aggiunge un'altra intestazione alla richiesta, oltre a quella già aggiunta dal server proxy. A seconda della configurazione dell'istanza, questa duplicazione potrebbe causare errori.
-
Verifica che le tue istanze siano in grado di elaborare le informazioni del protocollo proxy.
-
Verifica che le impostazioni del listener supportino il protocollo proxy. Per ulteriori informazioni, consulta Configurazioni del listener per i Classic Load Balancer.
Abilita il protocollo proxy utilizzando la AWS CLI
Per abilitare il protocollo proxy, devi creare una policy del tipo ProxyProtocolPolicyType
, quindi abilitarla sulla porta dell'istanza.
Utilizza la procedura seguente per creare una nuova policy per il tuo load balancer del tipo ProxyProtocolPolicyType
, impostare la policy appena creata per l'istanza sulla porta 80
e verificare che la policy sia abilitata.
Per abilitare il protocollo proxy per il proprio load balancer
-
(Facoltativo) Utilizzate il seguente comando describe-load-balancer-policy-types per elencare le politiche supportate da Elastic Load Balancing:
aws elb describe-load-balancer-policy-types
La risposta include i nomi e le descrizioni dei tipi di policy supportati. L'output per il tipo
ProxyProtocolPolicyType
è il seguente:{ "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" }, ... ] }
-
Utilizzate il create-load-balancer-policycomando seguente per creare una policy che abiliti il protocollo 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 -
Utilizzate il seguente for-backend-server comando set-load-balancer-policies- per abilitare la policy appena creata sulla porta specificata. Questo comando sostituisce il set corrente di policy abilitate. Pertanto, l'opzione
--policy-names
deve specificare sia la policy che si aggiunge all'elenco (ad esempiomy-ProxyProtocol-policy
) sia eventuali policy che al momento sono abilitate (ad esempiomy-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
-
(Facoltativo) Utilizzate il seguente describe-load-balancerscomando per verificare che il protocollo proxy sia abilitato:
aws elb describe-load-balancers --load-balancer-name
my-loadbalancer
La risposta include le seguenti informazioni, che mostrano che la policy
my-ProxyProtocol-policy
è associata alla porta80
.{ "LoadBalancerDescriptions": [ { ... "BackendServerDescriptions": [ { "InstancePort": 80, "PolicyNames": [ "my-ProxyProtocol-policy" ] } ], ... } ] }
Disabilita il protocollo proxy utilizzando la AWS CLI
Puoi disabilitare le policy associate alla tua istanza e abilitarle in un secondo momento.
Per disabilitare la policy del protocollo proxy
-
Utilizzate il seguente for-backend-server comando set-load-balancer-policies- per disabilitare la politica del protocollo proxy omettendola dall'
--policy-names
opzione, ma includendo le altre politiche che dovrebbero rimanere abilitate (ad esempio,my-existing-policy
).aws elb set-load-balancer-policies-for-backend-server --load-balancer-name
my-loadbalancer
--instance-port80
--policy-namesmy-existing-policy
Se non ci sono altre politiche da abilitare, specificare una stringa vuota con l'opzione
--policy-names
come segue:aws elb set-load-balancer-policies-for-backend-server --load-balancer-name
my-loadbalancer
--instance-port80
--policy-names "[]" -
(Facoltativo) Utilizzate il describe-load-balancerscomando seguente per verificare che la policy sia disabilitata:
aws elb describe-load-balancers --load-balancer-name
my-loadbalancer
La risposta include le seguenti informazioni, che mostrano che alla policy non è associata alcuna porta.
{ "LoadBalancerDescriptions": [ { ... "BackendServerDescriptions": [], ... } ] }