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á.
Receptores para seus Application Load Balancers
Um receptor é um processo que verifica solicitações de conexão usando o protocolo e a porta configurados por você. Antes de começar a usar seu Application Load Balancer, você deve adicionar ao menos um receptor. Se seu balanceador de carga não tiver receptores, ele não poderá receber tráfego dos clientes. As regras que você define para seus ouvintes determinam como o balanceador de carga encaminha as solicitações para os destinos que você registra, como EC2 instâncias.
Sumário
- Configuração do receptor
- Atributos do receptor
- Regras do listener
- Tipos de ação de regra
- Tipos de condição de regra
- Cabeçalhos X-Forwarded
- Crie um HTTP ouvinte
- SSLcertificados
- Políticas de segurança
- Crie um HTTPS ouvinte
- Atualizar regras do receptor
- Atualizar um HTTPS ouvinte
- TLSautenticação mútua
- Configurar a autenticação de usuários
- Marcar um receptor
- Excluir um listener
- modificação do cabeçalho
Configuração do receptor
Os listeners são compatíveis com os seguintes protocolos e portas:
-
Protocolos:HTTP, HTTPS
-
Ports (Portas): 1-65535
Você pode usar um HTTPS ouvinte para transferir o trabalho de criptografia e decodificação para seu balanceador de carga, para que seus aplicativos possam se concentrar em sua lógica de negócios. Se o protocolo do ouvinte forHTTPS, você deverá implantar pelo menos um certificado de SSL servidor no ouvinte. Para obter mais informações, consulte Crie um HTTPS ouvinte para seu Application Load Balancer.
Se você precisar garantir que os destinos descriptografem o HTTPS tráfego em vez do balanceador de carga, você pode criar um Network Load Balancer com um ouvinte na porta 443. TCP Com um TCP ouvinte, o balanceador de carga passa o tráfego criptografado para os destinos sem decifrá-lo. Para obter mais informações, consulte o Guia do usuário de network load balancers.
Os Application Load Balancers fornecem suporte nativo para WebSockets. Você pode atualizar uma conexão HTTP /1.1 existente em uma conexão WebSocket (ws
ouwss
) usando uma atualização de HTTP conexão. Quando você atualiza, a TCP conexão usada para solicitações (com o balanceador de carga e com o destino) se torna uma WebSocket conexão persistente entre o cliente e o destino por meio do balanceador de carga. Você pode usar WebSockets com ambos HTTP e com HTTPS ouvintes. As opções que você escolhe para seu ouvinte se aplicam tanto às WebSocket conexões quanto ao HTTP tráfego. Para obter mais informações, consulte Como o WebSocket protocolo funciona no Amazon CloudFront Developer Guide.
Os Application Load Balancers fornecem suporte nativo para HTTP /2 com HTTPS ouvintes. Você pode enviar até 128 solicitações em paralelo usando uma conexão HTTP /2. Você pode usar a versão do protocolo para enviar a solicitação aos destinos usando HTTP /2. Para obter mais informações, consulte Versão do protocolo. Como HTTP /2 usa conexões front-end com mais eficiência, você pode notar menos conexões entre os clientes e o balanceador de carga. Você não pode usar o recurso server-push de /2. HTTP
Para obter mais informações, consulte Roteamento de solicitação no Guia do usuário do Elastic Load Balancing.
Atributos do receptor
A seguir estão os atributos do ouvinte para Application Load Balancers
routing.http.request.x_amzn_mtls_clientcert_serial_number.header_name
-
Permite modificar o nome do cabeçalho da solicitação HTTPX-Amzn-Mtls-Clientcert-Serial-Number.
routing.http.request.x_amzn_mtls_clientcert_issuer.header_name
-
Permite modificar o nome do cabeçalho da solicitação HTTPX-Amzn-Mtls-Clientcert-Issuer.
routing.http.request.x_amzn_mtls_clientcert_subject.header_name
-
Permite que você modifique o nome do cabeçalho da solicitação HTTPX-Amzn-Mtls-Clientcert-Subject.
routing.http.request.x_amzn_mtls_clientcert_validity.header_name
-
Permite que você modifique o nome do cabeçalho da solicitação HTTPX-Amzn-Mtls-Clientcert-Validity.
routing.http.request.x_amzn_mtls_clientcert_leaf.header_name
-
Permite modificar o nome do cabeçalho da solicitação HTTPX-Amzn-Mtls-Clientcert-Leaf.
routing.http.request.x_amzn_mtls_clientcert.header_name
-
Permite modificar o nome do cabeçalho da solicitação HTTPX-Amzn-Mtls-Clientcert.
routing.http.request.x_amzn_tls_version.header_name
-
Permite modificar o nome do cabeçalho da solicitação HTTPX-Amzn-Tls-Version.
routing.http.request.x_amzn_tls_cipher_suite.header_name
-
Permite modificar o nome do cabeçalho da solicitação HTTPX-Amzn-Tls-Cipher-Suite.
routing.http.response.server.enabled
-
Permite permitir ou remover o cabeçalho do servidor de HTTP resposta.
routing.http.response.strict_transport_security.header_value
-
Informa aos navegadores que o site só deve ser acessado usandoHTTPS, e que qualquer tentativa futura de acessá-lo usando HTTP deve ser automaticamente convertida HTTPS em.
routing.http.response.access_control_allow_origin.header_value
-
Especifica quais origens têm permissão para acessar o servidor.
routing.http.response.access_control_allow_methods.header_value
-
Retorna quais HTTP métodos são permitidos ao acessar o servidor de uma origem diferente.
routing.http.response.access_control_allow_headers.header_value
-
Especifica quais cabeçalhos podem ser usados durante a solicitação.
routing.http.response.access_control_allow_credentials.header_value
-
Indica se o navegador deve incluir credenciais, como cookies ou autenticação, ao fazer solicitações.
routing.http.response.access_control_expose_headers.header_value
-
Retorna quais cabeçalhos o navegador pode expor ao cliente solicitante.
routing.http.response.access_control_max_age.header_value
-
Especifica por quanto tempo os resultados de uma solicitação de preflight podem ser armazenados em cache, em segundos.
routing.http.response.content_security_policy.header_value
-
Especifica as restrições impostas pelo navegador para ajudar a minimizar o risco de certos tipos de ameaças à segurança.
routing.http.response.x_content_type_options.header_value
-
Indica se os MIME tipos anunciados nos cabeçalhos Content-Type devem ser seguidos e não alterados.
routing.http.response.x_frame_options.header_value
-
Indica se o navegador tem permissão para renderizar uma página em um quadro, iframe, incorporação ou objeto.
Regras do listener
Cada receptor tem uma ação padrão, também conhecida como regra padrão. Não é possível excluir a regra padrão e ela sempre é executada por último. É possível criar regras adicionais e elas consistirão em uma prioridade, uma ou mais ações e uma ou mais condições. Você pode adicionar ou editar regras a qualquer momento. Para obter mais informações, consulte Editar uma regra.
Regras padrão
Ao criar um listener, você define as ações para a regra padrão. As regras padrão não podem ter condições. Se nenhuma das condições das regras do listener for atendida, a ação para a regra padrão será executada.
Veja a seguir um exemplo de uma regra padrão como mostrado no console:
Prioridade das regras
Cada regra tem uma prioridade. As regras são avaliadas em ordem de prioridade, do valor mais baixo para o valor mais alto. A regra padrão é avaliada por último. Você pode alterar a prioridade de uma regra não padrão a qualquer momento. Você não pode alterar a prioridade da regra padrão. Para obter mais informações, consulte Atualizar prioridade de regra.
Ações de regra
Cada ação de regra tem um tipo, uma prioridade e as informações necessárias para execução da ação. Para obter mais informações, consulte Tipos de ação de regra.
Condições de regra
Cada condição de regra possui um tipo e informações de configuração. Quando as condições de uma regra forem atendidas, a ação será executada. Para obter mais informações, consulte Tipos de condição de regra.
Tipos de ação de regra
Veja a seguir os tipos de ação compatíveis para uma regra de receptor:
authenticate-cognito
-
[HTTPSouvintes] Use o Amazon Cognito para autenticar usuários. Para obter mais informações, consulte Autenticar usuários usando um Application Load Balancer.
authenticate-oidc
-
[HTTPSouvintes] Use um provedor de identidade compatível com o OpenID Connect (OIDC) para autenticar usuários.
fixed-response
-
Retorne uma HTTP resposta personalizada. Para obter mais informações, consulte Ações de resposta fixa.
forward
-
Encaminha as solicitações para os grupos de destino especificados. Para obter mais informações, consulte Ações de encaminhamento.
redirect
-
Redirecione as solicitações de uma URL para outra. Para obter mais informações, consulte Ações de redirecionamento.
A ação com a menor prioridade é executada primeiro. Cada regra deve incluir exatamente uma das seguintes ações: forward
, redirect
ou fixed-response
e deve ser a última ação a ser executada.
Se a versão do protocolo for g RPC ou HTTP /2, as únicas ações suportadas serão forward
ações.
Ações de resposta fixa
Você pode usar fixed-response
ações para descartar solicitações de clientes e retornar uma HTTP resposta personalizada. Você pode usar essa ação para retornar um código de resposta 2XX, 4XX e 5XX e uma mensagem opcional.
Quando uma fixed-response
ação é executada, a ação e a URL do alvo de redirecionamento são registradas nos registros de acesso. Para obter mais informações, consulte Entradas do log de acesso. A contagem de ações de fixed-response
com êxito é relatada na métrica HTTP_Fixed_Response_Count
. Para obter mais informações, consulte Métricas do Application Load Balancer.
exemplo Exemplo de ação de resposta fixa para o AWS CLI
Você pode especificar uma ação ao criar ou modificar uma regra. Para obter mais informações, consulte os comandos create-rule e modify-rule. A ação a seguir envia uma resposta fixa com o código de status e o corpo da mensagem especificados.
[ { "Type": "fixed-response", "FixedResponseConfig": { "StatusCode": "200", "ContentType": "text/plain", "MessageBody": "Hello world" } } ]
Ações de encaminhamento
É possível usar ações forward
a fim de rotear solicitações para um ou mais grupos de destino. Se especificar vários grupos de destino para uma ação forward
, você deverá especificar um peso para cada grupo de destino. Cada peso de grupo de destino é um valor de 0 a 999. As solicitações que correspondem a uma regra de listener com grupos de destino ponderados são distribuídas para esses grupos de destino com base em seus pesos. Por exemplo, se você especificar dois grupos de destino, cada um com um peso de 10, cada grupo de destino receberá metade das solicitações. Se você especificar dois grupos de destino, um com peso de 10 e o outro com peso de 20, o grupo de destino com peso de 20 receberá duas vezes mais solicitações do que o outro grupo de destino.
Por padrão, configurar uma regra para distribuir o tráfego entre grupos de destino ponderados não garante que as sticky sessions sejam honradas. Para garantir que as sticky sessions sejam honradas, habilite a perdurabilidade do grupo de destino para a regra. Quando o balanceador de carga encaminha pela primeira vez uma solicitação para um grupo-alvo ponderado, ele gera um cookie chamado AWSALBTG que codifica informações sobre o grupo-alvo selecionado, criptografa o cookie e inclui o cookie na resposta ao cliente. O cliente deve incluir o cookie recebido nas solicitações subsequentes ao load balancer. Quando o load balancer recebe uma solicitação que corresponde a uma regra com a perdurabilidade do grupo de destino habilitada e contém o cookie, a solicitação é roteada para o grupo de destino especificado no cookie.
Os Application Load Balancers não oferecem suporte a valores de cookie URL codificados.
Com solicitações CORS (compartilhamento de recursos entre origens), alguns navegadores precisam ativar SameSite=None; Secure
a aderência. Nesse caso, o Elastic Load Balancing gera um segundo cookie AWSALBTGCORS, que inclui as mesmas informações do cookie de aderência original mais esse atributo. SameSite
Os clientes recebem ambos os cookies.
exemplo Exemplo de ação de encaminhamento com um grupo de destino
Você pode especificar uma ação ao criar ou modificar uma regra. Para obter mais informações, consulte os comandos create-rule e modify-rule. A ação a seguir encaminha solicitações para o grupo de destino especificado.
[ { "Type": "forward", "ForwardConfig": { "TargetGroups": [ { "TargetGroupArn": "arn:aws:elasticloadbalancing:
us-west-2
:123456789012
:targetgroup/my-targets
/73e2d6bc24d8a067
" } ] } } ]
exemplo Exemplo de ação de encaminhamento com dois grupos ponderados de destino
A ação a seguir encaminha solicitações para os dois grupos de destino especificados, com base no peso de cada grupo de destino.
[ { "Type": "forward", "ForwardConfig": { "TargetGroups": [ { "TargetGroupArn": "arn:aws:elasticloadbalancing:
us-west-2
:123456789012
:targetgroup/blue-targets
/73e2d6bc24d8a067
", "Weight": 10 }, { "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2
:123456789012
:targetgroup/green-targets
/09966783158cda59
", "Weight": 20 } ] } } ]
exemplo Exemplo de ação de encaminhamento com perdurabilidade habilitada
Se você tiver uma regra de encaminhamento com vários grupos de destino e um ou mais grupos de destino tiver sessões persistentes habilitadas, você deverá habilitar a perdurabilidade do grupo de destino.
A ação a seguir encaminha solicitações para os dois grupos de destino especificados, com a perdurabilidade do grupo de destino habilitada. As solicitações que não contêm os cookies de perdurabilidade são roteadas com base no peso de cada grupo de destino.
[ { "Type": "forward", "ForwardConfig": { "TargetGroups": [ { "TargetGroupArn": "arn:aws:elasticloadbalancing:
us-west-2
:123456789012
:targetgroup/blue-targets
/73e2d6bc24d8a067
", "Weight": 10 }, { "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2
:123456789012
:targetgroup/green-targets
/09966783158cda59
", "Weight": 20 } ], "TargetGroupStickinessConfig": { "Enabled": true, "DurationSeconds": 1000 } } } ]
Ações de redirecionamento
Você pode usar redirect
ações para redirecionar as solicitações do cliente de uma URL para outra. Você pode configurar redirecionamentos como temporários (HTTP302) ou permanentes (HTTP301) com base em suas necessidades.
A URI consiste nos seguintes componentes:
protocol
://hostname
:port
/path
?query
Você deve modificar pelo menos um dos seguintes componentes para evitar um loop de redirecionamento: protocolo, nome do host, porta ou caminho. Todos os componentes que você não modificar manterão seus valores originais.
- protocolo
-
O protocolo (HTTPouHTTPS). Você pode redirecionar HTTP para HTTPHTTPS, HTTP para e HTTPS paraHTTPS. Você não pode redirecionar HTTPS para. HTTP
- hostname
-
O nome do host. Um nome de host não diferencia maiúsculas de minúsculas, pode ter até 128 caracteres e consiste em caracteres alfanuméricos, curingas (* e ?) e hifens (-).
- porta
-
A porta (1 a 65535).
- caminho
-
O caminho absoluto, começando com a "/" inicial. Um caminho diferencia maiúsculas de minúsculas, pode ter até 128 caracteres e consiste em caracteres alfanuméricos, curingas (* e ?), & (usando &) e nos seguintes caracteres especiais: _-.$/~"'@:+.
- consulta
-
Os parâmetros da consulta. O tamanho máximo é 128 caracteres.
Você pode reutilizar URI componentes do original URL no destino URL usando as seguintes palavras-chave reservadas:
-
#{protocol}
– mantém o protocolo. Use no protocolo e nos componentes de consulta. -
#{host}
– mantém o domínio. Use no nome de host, no caminho e nos componentes de consulta. -
#{port}
– mantém a porta. Use na porta, no caminho e nos componentes de consulta. -
#{path}
– mantém o caminho. Use no caminho e nos componentes de consulta. -
#{query}
– mantém os parâmetros da consulta. Use no componente de consulta.
Quando uma ação de redirect
é executada, a ação é registrada nos logs de acesso. Para obter mais informações, consulte Entradas do log de acesso. A contagem de ações de redirect
com êxito é relatada na métrica HTTP_Redirect_Count
. Para obter mais informações, consulte Métricas do Application Load Balancer.
exemplo Exemplo de ações de redirecionamento usando o console
A regra a seguir configura um redirecionamento permanente para um URL que usa o HTTPS protocolo e a porta especificada (40443), mas mantém o nome do host, o caminho e os parâmetros de consulta originais. Esta tela é equivalente a "https://#{host}:40443/#{path}?#{query}".
A regra a seguir configura um redirecionamento permanente para um URL que retém o protocolo original, a porta, o nome do host e os parâmetros de consulta e usa a #{path}
palavra-chave para criar um caminho modificado. Esta tela é equivalente a "#{protocol}://#{host}:#{port}/new/#{path}?#{query}".
exemplo Exemplo de ação de redirecionamento para o AWS CLI
Você pode especificar uma ação ao criar ou modificar uma regra. Para obter mais informações, consulte os comandos create-rule e modify-rule. A ação a seguir redireciona uma HTTP solicitação para uma HTTPS solicitação na porta 443, com o mesmo nome de host, caminho e string de consulta da solicitação. HTTP
[ { "Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "Host": "#{host}", "Path": "/#{path}", "Query": "#{query}", "StatusCode": "HTTP_301" } } ]
Tipos de condição de regra
Veja a seguir os tipos de condição compatíveis para uma regra:
host-header
-
Rota com base no nome do host de cada solicitação. Para obter mais informações, consulte Condições do host.
http-header
-
Rota com base nos HTTP cabeçalhos de cada solicitação. Para obter mais informações, consulte HTTPcondições do cabeçalho.
http-request-method
-
Rota com base no método de HTTP solicitação de cada solicitação. Para obter mais informações, consulte HTTPcondições do método de solicitação.
path-pattern
-
Rota com base nos padrões de caminho na solicitaçãoURLs. Para obter mais informações, consulte Condições do caminho.
query-string
-
Rota com base em pares de chave/valor ou valores nas strings de consulta. Para obter mais informações, consulte Condições de string de consulta.
source-ip
-
Rota com base no endereço IP de origem de cada solicitação. Para obter mais informações, consulte Condições de endereço IP de origem.
Cada regra pode, opcionalmente, incluir até uma de cada uma das seguintes condições: host-header
, http-request-method
, path-pattern
e source-ip
. Cada regra também pode, opcionalmente, incluir uma ou mais de cada uma das seguintes condições: http-header
e query-string
.
Você pode especificar até três avaliações de correspondência por condição. Por exemplo, para cada http-header
condição, você pode especificar até três cadeias de caracteres a serem comparadas ao valor do HTTP cabeçalho na solicitação. A condição é satisfeita se uma das cadeias corresponder ao valor do HTTP cabeçalho. Para exigir que todas as strings sejam uma correspondência, crie uma condição por avaliação de correspondência.
Você pode especificar até cinco avaliações de correspondência por regra. Por exemplo, você pode criar uma regra com cinco condições em que cada condição tenha uma avaliação de correspondência.
Você pode incluir caracteres curinga nas avaliações de correspondência para as condições http-header
, host-header
, path-pattern
e query-string
. Existe um limite de cinco caracteres curinga por regra.
As regras são aplicadas somente aos ASCII caracteres visíveis; os caracteres de controle (0x00 a 0x1f e 0x7f) são excluídos.
Para demonstrações, consulte Roteamento avançado de solicitação
HTTPcondições do cabeçalho
Você pode usar condições de HTTP cabeçalho para configurar regras que roteiam solicitações com base nos HTTP cabeçalhos da solicitação. Você pode especificar os nomes dos campos de HTTP cabeçalho padrão ou personalizados. O nome do cabeçalho e a avaliação de correspondência não diferenciam maiúsculas de minúsculas. Os caracteres curinga a seguir são compatíveis com as strings de comparação: * (corresponde a 0 ou mais caracteres) e ? (corresponde exatamente a 1 caractere). Caracteres curinga não são compatíveis com o nome do cabeçalho.
exemplo Exemplo de condição de HTTP cabeçalho para o AWS CLI
Você pode especificar condições ao criar ou modificar uma regra. Para obter mais informações, consulte os comandos create-rule e modify-rule. A condição a seguir é atendida por solicitações com um cabeçalho User-Agent que corresponda a uma das strings especificadas.
[ { "Field": "http-header", "HttpHeaderConfig": { "HttpHeaderName": "User-Agent", "Values": ["*Chrome*", "*Safari*"] } } ]
HTTPcondições do método de solicitação
Você pode usar as condições do método de HTTP solicitação para configurar regras que roteiam solicitações com base no HTTP método de solicitação da solicitação. Você pode especificar HTTP métodos padrão ou personalizados. A avaliação de correspondência faz distinção entre maiúsculas e minúsculas. Caracteres curinga não são compatíveis; portanto, o nome do método deve ser uma correspondência exata.
Recomendamos que você roteie GET e HEAD solicite da mesma forma, pois a resposta a uma HEAD solicitação pode ser armazenada em cache.
exemplo Exemplo de condição de HTTP método para o AWS CLI
Você pode especificar condições ao criar ou modificar uma regra. Para obter mais informações, consulte os comandos create-rule e modify-rule. A condição a seguir é atendida por solicitações que usam o método especificado.
[ { "Field": "http-request-method", "HttpRequestMethodConfig": { "Values": ["CUSTOM-METHOD"] } } ]
Condições do host
Você pode usar as condições do host para definir regras que roteiam solicitações com base no nome do host no cabeçalho de host (também conhecido como roteamento baseado em host). Isso permite que você ofereça suporte a vários subdomínios e a diferentes domínios de nível superior usando um só balanceador de carga.
Um nome de host não diferencia maiúsculas de minúsculas, pode ter até 128 caracteres e conter qualquer um dos caracteres a seguir:
-
A-Z, a-z, 0-9
-
- .
-
* (corresponde a 0 ou mais caracteres)
-
? (corresponde a exatamente 1 caractere)
É necessário incluir pelo menos um caractere ".". Você pode incluir somente caracteres alfabéticos após o "." final.
Por exemplo, os hostnames
-
example.com
-
test.example.com
-
*.example.com
A regra *.example.com
corresponde a test.example.com
, mas não corresponde a example.com
.
exemplo Exemplo de condição de cabeçalho de host para o AWS CLI
Você pode especificar condições ao criar ou modificar uma regra. Para obter mais informações, consulte os comandos create-rule e modify-rule. A condição a seguir é atendida por solicitações com um cabeçalho de host que corresponda à string especificada.
[ { "Field": "host-header", "HostHeaderConfig": { "Values": ["*.example.com"] } } ]
Condições do caminho
Você pode usar condições de caminho para definir regras que roteiam solicitações com base URL na solicitação (também conhecida como roteamento baseado em caminho).
O padrão de caminho é aplicado somente ao caminho doURL, não aos seus parâmetros de consulta. Ela é aplicada somente aos ASCII caracteres visíveis; os caracteres de controle (0x00 a 0x1f e 0x7f) são excluídos.
A avaliação da regra é realizada somente após a URI normalização.
O padrão do caminho diferencia maiúsculas de minúsculas, pode ter até 128 caracteres e conter qualquer um dos caracteres a seguir.
-
A-Z, a-z, 0-9
-
_ - . $ / ~ " ' @ : +
-
& (usando &)
-
* (corresponde a 0 ou mais caracteres)
-
? (corresponde a exatamente 1 caractere)
Se a versão do protocolo for gRPC, as condições podem ser específicas de um pacote, serviço ou método.
Exemplos de padrões de HTTP caminho
-
/img/*
-
/img/*/pics
Exemplo de padrões de RPC caminho g
-
/package
-
/package.service
-
/package.service/method
O caminho padrão é usado para rotear as solicitações, mas não as altera. Por exemplo, se uma regra tiver um padrão de caminho /img/*
, a regra encaminhará uma solicitação de /img/picture.jpg
ao grupo de destino especificado como uma solicitação para /img/picture.jpg
.
exemplo Exemplo de condição de padrão de caminho para o AWS CLI
Você pode especificar condições ao criar ou modificar uma regra. Para obter mais informações, consulte os comandos create-rule e modify-rule. A condição a seguir é satisfeita por solicitações com um URL que contém a string especificada.
[ { "Field": "path-pattern", "PathPatternConfig": { "Values": ["/img/*"] } } ]
Condições de string de consulta
Você pode usar condições de string de consulta para configurar regras que roteiam solicitações com base em pares de chave/valor ou valores na string de consulta. A avaliação de correspondência não diferencia maiúsculas de minúsculas. Os caracteres curinga a seguir são compatíveis: * (corresponde a 0 ou mais caracteres) e ? (corresponde exatamente a 1 caractere).
exemplo Exemplo de condição de sequência de consulta para o AWS CLI
Você pode especificar condições ao criar ou modificar uma regra. Para obter mais informações, consulte os comandos create-rule e modify-rule. A condição a seguir é atendida por solicitações com uma string de consulta que inclui um par de chave/valor de "version=v1" ou qualquer chave definida como "example".
[ { "Field": "query-string", "QueryStringConfig": { "Values": [ { "Key": "version", "Value": "v1" }, { "Value": "*example*" } ] } } ]
Condições de endereço IP de origem
Você pode usar condições de endereço IP de origem para configurar regras que roteiam solicitações com base no endereço IP de origem da solicitação. O endereço IP deve ser especificado no CIDR formato. Você pode usar ambos IPv4 e IPv6 endereços. Caracteres curinga não são compatíveis. Você não pode especificar 255.255.255.255/32
CIDR a condição da regra de IP de origem.
Se um cliente estiver por trás de um proxy, este é o endereço IP do proxy e não o endereço IP do cliente.
Essa condição não é satisfeita pelos endereços no X-Forwarded-For cabeçalho. Para pesquisar endereços no X-Forwarded-For cabeçalho, use uma http-header
condição.
exemplo Exemplo de condição de IP de origem para o AWS CLI
Você pode especificar condições ao criar ou modificar uma regra. Para obter mais informações, consulte os comandos create-rule e modify-rule. A condição a seguir é satisfeita por solicitações com um endereço IP de origem em um dos CIDR blocos especificados.
[ { "Field": "source-ip", "SourceIpConfig": { "Values": ["192.0.2.0/24", "198.51.100.10/32"] } } ]
HTTPcabeçalhos e balanceadores de carga de aplicativos
HTTPsolicitações e HTTP respostas usam campos de cabeçalho para enviar informações sobre as HTTP mensagens. HTTPos cabeçalhos 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 HTTP cabeçalho é definido em RFC 2616, Cabeçalhos de mensagensX-Forwarded
prefixo. Os Application Load Balancers são compatíveis com os seguintes cabeçalhos X-Forwarded
.
Para obter mais informações sobre HTTP conexões, consulte Roteamento de solicitações no Guia do Usuário do Elastic Load Balancing.
Cabeçalhos X-Forwarded
X-Forwarded-For
O cabeçalho da X-Forwarded-For
solicitação ajuda a identificar o endereço IP de um cliente quando você usa um balanceador de HTTPS carga HTTP or. 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 X-Forwarded-For
cabeçalho na HTTP solicitação 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
PoisIPv6, 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 IPv4 endereço 12.34.56.78
e 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 IPv6 endereço 2001:db8:85a3:8d3:1319:8a2e:370:7348
e número de porta de8080
.
X-Forwarded-For: [2001:db8:85a3:8d3:1319:8a2e:370:7348]:8080
Preservar
O preserve
modo no atributo garante que o X-Forwarded-For
cabeçalho na HTTP solicitação não seja modificado de forma alguma antes de ser enviado aos destinos.
Remover
O remove
modo no atributo remove o X-Forwarded-For
cabeçalho na HTTP solicitação antes que ela seja enviada aos destinos.
nota
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 |
XFFem append modo |
XFFem preserve modo |
XFFem remove modo |
---|---|---|---|---|
A solicitação é enviada sem XFF cabeçalho | 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 XFF cabeçalho 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 XFF cabeçalho com 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 |
Para modificar, preservar ou remover o X-Forwarded-For cabeçalho usando o console
Abra o EC2 console da Amazon em https://console.aws.amazon.com/ec2/
. -
No painel de navegação, selecione Balanceador de carga.
-
Selecione o load balancer.
-
Na guia Atributos, escolha Editar.
-
Na seção Configuração de tráfego, em Tratamento de pacotes, para X-Forwarded-For cabeçalho, escolha Anexar (padrão), Preservar ou Remover.
-
Escolha Salvar alterações.
Para modificar, preservar ou remover o X-Forwarded-For cabeçalho usando o AWS CLI
Use o modify-load-balancer-attributescomando com o routing.http.xff_header_processing.mode
atributo.
X-Forwarded-Proto
O cabeçalho da X-Forwarded-Proto
solicitação ajuda você a identificar o protocolo (HTTPouHTTPS) que um cliente usou para se conectar ao seu balanceador de carga. 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.
Seu aplicativo ou site pode usar o protocolo armazenado no cabeçalho da X-Forwarded-Proto
solicitação para renderizar uma resposta que redireciona para a apropriada. URL
O cabeçalho de solicitação X-Forwarded-Proto
leva a seguinte forma:
X-Forwarded-Proto: originatingProtocol
O exemplo a seguir contém um X-Forwarded-Proto
cabeçalho de solicitação para uma solicitação originada do cliente como uma HTTPS solicitação:
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.