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á.
Cabeçalhos HTTP e Application Load Balancers
As solicitações HTTP e as respostas HTTP usam campos de cabeçalho para enviar informações sobre as mensagens HTTP. Os cabeçalhos HTTP são adicionados automaticamente. Os campos de cabeçalho são pares de nome-valor separados por dois pontos e separados por um retorno de carro (CR) e um avanço de linha (LF). Um conjunto padrão de campos de cabeçalho HTTP está definido na RFC 2616, Cabeçalhos de mensagemX-Forwarded
. Os Application Load Balancers são compatíveis com os seguintes cabeçalhos X-Forwarded
.
Para obter mais informações sobre conexões HTTP, consulte Roteamento de solicitação no Manual do usuário do Elastic Load Balancing.
Cabeçalhos X-Forwarded
X-Forwarded-For
O cabeçalho da solicitação X-Forwarded-For
ajuda você a identificar o endereço IP de um cliente quando usar um load balancer HTTP ou HTTPS. Como os balanceadores de carga interceptam o tráfego entre clientes e servidores, os logs de acesso do seu servidor vão conter apenas o endereço IP do balanceador de carga. Para ver o endereço IP do cliente, use o atributo routing.http.xff_header_processing.mode
. Esse atributo permite que você modifique, preserve ou remova o cabeçalho X-Forwarded-For
na solicitação HTTP antes que o Application Load Balancer envie a solicitação ao destino. Os valores possíveis para esse atributo são append
, preserve
e remove
. O valor padrão desse atributo é append
.
Importante
O cabeçalho X-Forwarded-For
deve ser usado com cuidado devido ao potencial de riscos à segurança. As entradas só podem ser consideradas confiáveis se adicionadas por sistemas devidamente protegidos na rede.
Anexar
Por padrão, o Application Load Balancer armazena o endereço IP do cliente no cabeçalho de solicitação X-Forwarded-For
e encaminha o cabeçalho para o seu servidor. Se o cabeçalho de solicitação X-Forwarded-For
não estiver incluído na solicitação original, o balanceador de carga criará um com o endereço IP do cliente como o valor da solicitação. Caso contrário, o balanceador de carga anexará o endereço IP do cliente ao cabeçalho existente e encaminhará o cabeçalho para o seu servidor. O cabeçalho de solicitação X-Forwarded-For
pode conter vários endereços IP separados por vírgula.
O cabeçalho de solicitação X-Forwarded-For
leva a seguinte forma:
X-Forwarded-For: client-ip-address
Veja a seguir um exemplo de cabeçalho de solicitação X-Forwarded-For
para um cliente com o endereço IP 203.0.113.7
.
X-Forwarded-For: 203.0.113.7
Veja a seguir um exemplo de cabeçalho de X-Forwarded-For
solicitação para um cliente com IPv6 endereço de2001:DB8::21f:5bff:febf:ce22:8a2e
.
X-Forwarded-For: 2001:DB8::21f:5bff:febf:ce22:8a2e
Quando o atributo de preservação da porta do cliente (routing.http.xff_client_port.enabled
) estiver habilitado no balanceador de carga, o cabeçalho X-Forwarded-For
da solicitação incluirá o client-port-number
anexado ao client-ip-address
, separado por dois pontos. Em seguida, o cabeçalho adotará a seguinte forma:
IPv4 -- X-Forwarded-For: client-ip-address
:client-port-number
IPv6 -- X-Forwarded-For: [client-ip-address]
:client-port-number
Pois IPv6, observe que quando o balanceador de carga anexa o client-ip-address
ao cabeçalho existente, ele coloca o endereço entre colchetes.
Veja a seguir um exemplo de cabeçalho de X-Forwarded-For
solicitação para um cliente com um IPv4 endereço 12.34.56.78
e um número de porta de8080
.
X-Forwarded-For: 12.34.56.78:8080
Veja a seguir um exemplo de cabeçalho de X-Forwarded-For
solicitação para um cliente com um IPv6 endereço 2001:db8:85a3:8d3:1319:8a2e:370:7348
e um número de porta de8080
.
X-Forwarded-For: [2001:db8:85a3:8d3:1319:8a2e:370:7348]:8080
Preservar
O modo preserve
no atributo garante que o cabeçalho X-Forwarded-For
na solicitação HTTP não seja modificado de nenhuma forma antes do envio para os destinos.
Remover
O modo remove
no atributo remove o cabeçalho X-Forwarded-For
na solicitação HTTP antes do envio para os destinos.
Se você habilitar o atributo de preservação da porta do cliente (routing.http.xff_client_port.enabled
) e também selecionar preserve
ou remove
para o atributo routing.http.xff_header_processing.mode
, o Application Load Balancer substituirá o atributo de preservação da porta do cliente. Dependendo do modo selecionado, ele mantém o cabeçalho X-Forwarded-For
inalterado ou o remove antes de enviá-lo para os destinos.
A tabela a seguir mostra exemplos do cabeçalho X-Forwarded-For
que o destino recebe quando você seleciona o modo append
, preserve
ou remove
. Neste exemplo, o endereço IP do último salto é 127.0.0.1
.
Descrição da solicitação | Exemplo de solicitação | append | preserve | remove |
---|---|---|---|---|
A solicitação é enviada sem cabeçalho XFF. | GET /index.html HTTP/1.1 Host: example.com |
X-Forwarded-For: 127.0.0.1 |
Não está presente | Não está presente |
A solicitação é enviada com um cabeçalho XFF e um endereço IP do cliente. | GET /index.html HTTP/1.1 Host: example.com X-Forwarded-For:
127.0.0.4 |
X-Forwarded-For: 127.0.0.4, 127.0.0.1 |
X-Forwarded-For: 127.0.0.4 |
Não está presente |
A solicitação é enviada com um cabeçalho XFF e vários endereços IP do cliente. | GET /index.html HTTP/1.1 Host: example.com X-Forwarded-For:
127.0.0.4, 127.0.0.8 |
X-Forwarded-For: 127.0.0.4, 127.0.0.8,
127.0.0.1 |
X-Forwarded-For: 127.0.0.4, 127.0.0.8 |
Não está presente |
X-Forwarded-Proto
O cabeçalho da solicitação X-Forwarded-Proto
ajuda você a identificar o protocolo (HTTP ou HTTPS) que um cliente usou para se conectar ao seu load balancer. Os logs de acesso do servidor contêm apenas o protocolo usado entre o servidor e o load balancer; eles não contêm informações sobre o protocolo usado entre o cliente e o load balancer. Para determinar o protocolo usado entre o cliente e o balanceador de carga, use o cabeçalho de solicitação X-Forwarded-Proto
. O Elastic Load Balancing armazena o protocolo usado entre o cliente e o balanceador de carga no cabeçalho da solicitação X-Forwarded-Proto
e encaminha o cabeçalho para seu servidor.
O aplicativo ou o site podem usar o protocolo armazenado no cabeçalho da solicitação X-Forwarded-Proto
para renderizar uma resposta que redireciona para o URL apropriado.
O cabeçalho de solicitação X-Forwarded-Proto
leva a seguinte forma:
X-Forwarded-Proto: originatingProtocol
O exemplo a seguir contém um cabeçalho de solicitação X-Forwarded-Proto
para uma solicitação originada do cliente como solicitação de HTTPS:
X-Forwarded-Proto: https
X-Forwarded-Port
O cabeçalho de solicitação X-Forwarded-Port
ajuda a identificar a porta de destino que o cliente usou para se conectar ao load balancer.