As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Configure o protocolo proxy para seu Classic Load Balancer
O protocolo de proxy é um protocolo de Internet usado para transportar informações de conexão da origem que solicita a conexão ao destino ao qual a conexão foi solicitada. O Elastic Load Balancing usa o protocolo de proxy versão 1, que usa um formato de cabeçalho legível por humanos.
Por padrão, quando você usa o Transmission Control Protocol (TCP) para conexões front-end e back-end, seu Classic Load Balancer encaminha solicitações para as instâncias sem modificar os cabeçalhos da solicitação. Se você habilitar o protocolo de proxy, um cabeçalho legível por humanos será adicionado ao cabeçalho de solicitação com informações de conexão, como o endereço IP de origem, endereço IP de destino e números de portas. O cabeçalho, então, será enviado à instância como parte da solicitação.
nota
O AWS Management Console não suporta a ativação do protocolo proxy.
Conteúdo
Cabeçalho do protocolo de proxy
O cabeçalho do protocolo proxy ajuda a identificar o endereço IP de um cliente quando você tem um balanceador de carga usado TCP para conexões de back-end. Como os load balancers interceptam tráfego entre clientes e suas instâncias, os logs de acesso da sua instância contêm o endereço IP do load balancer em vez do cliente de origem. Você pode analisar a primeira linha da solicitação para recuperar o endereço IP do cliente e o número da porta.
O endereço do proxy no cabeçalho de IPv6 é o IPv6 endereço público do seu balanceador de carga. Esse IPv6 endereço corresponde ao endereço IP que é resolvido a partir do DNS nome do seu balanceador de carga, que começa com ipv6
oudualstack
. Se o cliente se conectar comIPv4, o endereço do proxy no cabeçalho será o IPv4 endereço privado do balanceador de carga, que não pode ser resolvido por meio de uma pesquisa. DNS
A linha do protocolo de proxy é uma única linha que termina com um retorno de carro e feed de linha ("\r\n"
) e tem o seguinte formato:
PROXY_STRING + single space + INET_PROTOCOL + single space + CLIENT_IP + single space + PROXY_IP + single space + CLIENT_PORT + single space + PROXY_PORT + "\r\n"
Exemplo: IPv4
Veja a seguir um exemplo da linha de protocolo proxy paraIPv4.
PROXY TCP4 198.51.100.22 203.0.113.7 35646 80\r\n
Pré-requisitos para habilitar o protocolo de proxy
Antes de começar, faça o seguinte:
-
Confirme se o balanceador de carga não está por trás de um servidor de proxy com o protocolo de proxy habilitado. Se o protocolo de proxy estiver habilitado tanto no servidor de proxy quanto no balanceador de carga, este adicionará outro cabeçalho à solicitação, que já tem um cabeçalho do servidor de proxy. Dependendo de como sua instância estiver configurada, essa duplicação poderá resultar em erros.
-
Confirme se suas instâncias podem processar as informações do protocolo de proxy.
-
Confirme se as configurações do seu listener são compatíveis com o protocolo de proxy. Para obter mais informações, consulte Configurações do listener para balanceadores de carga clássicos.
Habilitar o protocolo de proxy usando a AWS CLI
Para habilitar o protocolo de proxy, você precisa criar uma política do tipo ProxyProtocolPolicyType
e, em seguida, habilitar a política na porta da instância.
Use o procedimento a seguir para criar uma nova política para o load balancer do tipo ProxyProtocolPolicyType
, definir a política recém-criada para a instância na porta 80
e verificar se a política está ativada.
Para habilitar o Proxy Protocol para o load balancer
-
(Opcional) Use o seguinte comando describe-load-balancer-policy-types para listar as políticas suportadas pelo Elastic Load Balancing:
aws elb describe-load-balancer-policy-types
A resposta inclui os nomes e as descrições dos tipos de política suportados. A tabela a seguir mostra a saída para o tipo
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" }, ... ] }
-
Use o create-load-balancer-policycomando a seguir para criar uma política que habilite o protocolo 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 -
Use o seguinte for-backend-server comando set-load-balancer-policies- para habilitar a política recém-criada na porta especificada. Observe que esse comando substitui o conjunto atual de políticas habilitadas. Portanto, a opção
--policy-names
deve especificar tanto a política que você está adicionando à lista (por exemplo,my-ProxyProtocol-policy
) quanto quaisquer políticas que estejam atualmente habilitadas (por exemplo,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
-
(Opcional) Use o describe-load-balancerscomando a seguir para verificar se o protocolo proxy está ativado:
aws elb describe-load-balancers --load-balancer-name
my-loadbalancer
A resposta inclui as informações a seguir, que mostra que a política
my-ProxyProtocol-policy
está associada com a porta80
.{ "LoadBalancerDescriptions": [ { ... "BackendServerDescriptions": [ { "InstancePort": 80, "PolicyNames": [ "my-ProxyProtocol-policy" ] } ], ... } ] }
Desabilitar o protocolo de proxy usando a AWS CLI
Você pode desativar as políticas associadas à sua instância e, em seguida, habilitá-las posteriormente.
Para desabilitar a política do protocolo de proxy
-
Use o seguinte for-backend-server comando set-load-balancer-policies- para desativar a política do protocolo proxy omitindo-a da
--policy-names
opção, mas incluindo as outras políticas que devem permanecer habilitadas (por exemplo,my-existing-policy
).aws elb set-load-balancer-policies-for-backend-server --load-balancer-name
my-loadbalancer
--instance-port80
--policy-namesmy-existing-policy
Se não houver outras políticas para habilitar, especifique uma string vazia com a opção
--policy-names
, da seguinte forma:aws elb set-load-balancer-policies-for-backend-server --load-balancer-name
my-loadbalancer
--instance-port80
--policy-names "[]" -
(Opcional) Use o describe-load-balancerscomando a seguir para verificar se a política está desativada:
aws elb describe-load-balancers --load-balancer-name
my-loadbalancer
A resposta inclui as informações a seguir, que mostram que nenhuma porta está associada com uma política.
{ "LoadBalancerDescriptions": [ { ... "BackendServerDescriptions": [], ... } ] }