Se você é um usuário do balanceador de carga de aplicativo clássico, consulte esta página se estiver planejando migrar para o balanceador de carga externo global ou se estiver planejando uma nova implantação com o balanceador de carga de aplicativo externo global.
Diferenças de recursos
Os seguintes recursos não são compatíveis com o balanceador de carga de aplicativo externo global. Eles estão disponíveis apenas com o balanceador de carga de aplicativo clássico:
- Nível de rede padrão
-
Para implantar balanceadores de carga de aplicativo externos globais para clusters do GKE, use o controlador de gateway do GKE. Para instruções de configuração, consulte Como implantar gateways.
Diferenças do plano de dados
A tabela a seguir destaca as diferenças no plano de dados entre o balanceador de carga de aplicativo clássico e o balanceador de carga de aplicativo externo global. Essas diferenças afetam a forma como os balanceadores de carga respondem a alguns eventos comuns.
Evento | Resposta do balanceador de carga de aplicativo clássico | Resposta do balanceador de carga de aplicativo externo global |
Status/códigos de erro | ||
Nenhum back-end está íntegro | Retorna HTTP 502 | Retorna HTTP 503 |
A solicitação usa uma criptografia SSL banida | Retorna HTTP 502 | Retorna HTTP 503 |
Conexão de upstream inicial redefinida pelo back-end | Retorna HTTP 502 | Retorna HTTP 503 |
Falha no upgrade da conexão (por exemplo, ao fazer upgrade para Websockets) | Retorna HTTP 400 | Retorna HTTP 403 |
O cabeçalho é grande demais | Retorna HTTP 413 | Retorna HTTP 431 |
Cotas e limites | ||
Configuração do mapa de URL | Há diferenças significativas nos limites de configuração do mapa de URL entre os dois balanceadores de carga. Para mais detalhes, consulte a documentação Cotas: mapas de URL. | |
Processamento de cabeçalhos | ||
A solicitação usa um método HTTP personalizado sem corpo | Adiciona o cabeçalho Transfer Encoding: Chunked à solicitação enviada ao back-end |
Adiciona o cabeçalho Content-Length: 0 à solicitação enviada ao back-end |
Formato do cabeçalho X-Forwarded-For adicionado às solicitações enviadas ao back-end |
Usa o delimitador ", " entre IPs |
Usa o delimitador ", " entre IPs (sem espaço depois da vírgula) |
Preservação de caixa do cabeçalho | A caixa do cabeçalho é preservada | Todas as chaves do cabeçalho são transformadas em minúsculas |
Cabeçalhos repetidos com o mesmo nome | Permitido | Cabeçalhos repetidos podem ser combinados em um único cabeçalho, com os valores anexados em ordem e separados por vírgula, conforme permitido pela RFC 7230. |
(Somente HTTP/1.1) Nome de cabeçalho inválido (por exemplo, caracteres incompatíveis no cabeçalho) | Permitido (para HTTP/1.1) | Retorna HTTP 502 (para HTTP/1.1) |
(Somente HTTP/1.1) Cabeçalho Content-Length repetido (mas igual) na solicitação |
Permitido (para HTTP/1.1) | Retorna HTTP 502 (para HTTP/1.1) |
(Somente HTTP/1.1) Vários hosts no cabeçalho | Quando dois ou mais hosts são adicionados e o primeiro é válido, o cabeçalho é aceito | Quando dois ou mais hosts são adicionados e alguns são inválidos, o balanceador de carga retorna HTTP 502 |
(Somente HTTP/1.1) Cabeçalho Connection: Keep-Alive |
Por padrão, adiciona Keep-Alive header às solicitações enviadas ao back-end |
Por padrão, não adiciona esse cabeçalho |
Processamento de solicitações | ||
Barras invertidas na solicitação | O URL não foi alterado | Converte para barra |
Mesclar barras duplicadas na solicitação | Deixa as barras sem mesclar | Mescla barras |
"#" no caminho da solicitação | Permitido | Retorna HTTP 400 |
(Somente HTTP/1.1) Caracteres inválidos no caminho de solicitação (por exemplo, "\\x7f\\x7f") | Permitido (para HTTP/1.1) | Retorna HTTP 502 (para HTTP/1.1) |
Distribuição de tráfego (configuração do mapa de URL) | ||
A solicitação do cliente inclui um número de porta | O número da porta é ignorado mesmo que você tenha configurado hosts com portas no mapa de URL. Apenas o nome do host é considerado. Por exemplo, as solicitações para example.com:5000 são correspondidas com o serviço de back-end para example.com .
|
O nome do host e o número da porta são considerados. Por exemplo, as solicitações para example.com:5000 são correspondidas com o serviço de back-end para example.com:5000 . Se não houver uma correspondência, o serviço de back-end padrão será usado.
|