Si ya eres un usuario del balanceador de cargas de aplicaciones clásico, asegúrate de revisar esta página si planeas migrar al balanceador de cargas de aplicaciones externo global o si planeas una implementación nueva con el balanceador de cargas de aplicaciones externo global.
Diferencias entre las funciones
Las siguientes funciones no son compatibles con el balanceador de cargas de aplicaciones externo global. Solo están disponibles con el balanceador de cargas de aplicaciones clásico:
- Nivel de red Estándar
-
Para implementar balanceadores de cargas de aplicaciones externos globales para clústeres de GKE, usa el GKE Gateway Controller en su lugar. Para obtener instrucciones de configuración, consulta Implementa puertas de enlace.
Diferencias entre planos de datos
En la siguiente tabla, se destacan las diferencias en el plano de datos entre el balanceador de cargas de aplicaciones clásico y el balanceador de cargas de aplicaciones externo global. Estas diferencias afectan la forma en que los balanceadores de cargas responden a algunos eventos comunes.
Evento | Respuesta del balanceador de cargas de aplicaciones clásico | Respuesta del balanceador de cargas de aplicaciones externo global |
Códigos de error o estado | ||
Todos los backends están en mal estado | Muestra HTTP 502 | Muestra HTTP 503 |
La solicitud usa un algoritmo de cifrado SSL prohibido | Muestra HTTP 502 | Muestra HTTP 503 |
Conexión ascendente anterior que el backend restablece | Muestra HTTP 502 | Muestra HTTP 503 |
Actualización de conexión con errores (por ejemplo, mientras se actualiza a Websockets) | Muestra HTTP 400 | Muestra HTTP 403 |
El encabezado es demasiado grande | Muestra HTTP 413 | Muestra HTTP 431 |
Cuotas y límites | ||
Configuración del mapa de URL | Existen diferencias significativas en los límites de configuración del mapa de URL entre los dos balanceadores de cargas. Para obtener más información, consulta la documentación Cuotas: mapas de URL. | |
Manejo de encabezados | ||
La solicitud usa un método HTTP personalizado sin cuerpo | Agrega el encabezado Transfer Encoding: Chunked a la solicitud enviada al backend |
Agrega el encabezado Content-Length: 0 a la solicitud enviada al backend |
Formato del encabezado X-Forwarded-For que se agregó a las solicitudes enviadas al backend |
Usa el delimitador “, ” entre las IP |
Usa el delimitador “, ” entre las IP (sin espacio después de la coma). |
Conservación de casos de encabezado | Se conserva el caso de encabezado | Todas las claves de encabezado se transforman en minúsculas |
Encabezados repetidos con el mismo nombre | Permitido | Los encabezados repetidos se pueden combinar en un solo encabezado, con los valores anexados en orden y separados por comas, como se permite en RFC 7230. |
(Solo HTTP/1.1) Nombre de encabezado no válido (por ejemplo, caracteres no compatibles en el encabezado) | Permitido (para HTTP/1.1) | Muestra HTTP 502 (para HTTP/1.1) |
(Solo HTTP/1.1) Encabezado Content-Length repetido (pero igual) en la solicitud |
Permitido (para HTTP/1.1) | Muestra HTTP 502 (para HTTP/1.1) |
(Solo HTTP/1.1) Varios hosts en el encabezado | Cuando se agregan 2 o más hosts y el primero es válido, se acepta el encabezado | Cuando se agregan 2 o más hosts y ninguno de ellos es válido, el balanceador de cargas muestra HTTP 502 |
(Solo HTTP/1.1) encabezado Connection: Keep-Alive |
Agrega Keep-Alive header en las solicitudes enviadas al backend de forma predeterminada. |
No agrega este encabezado de forma predeterminada |
Administra solicitudes | ||
Barras inversas en la solicitud | URL sin cambios | Convierte a la barra diagonal |
Combina barras duplicadas en la solicitud | Deja las barras separadas | Combina las barras |
"#" en la ruta de acceso de la solicitud | Permitido | Muestra HTTP 400 |
(Solo HTTP/1.1) Caracteres no permitidos en la ruta de acceso de la solicitud (por ejemplo, “\\x7f\\x7f”) | Permitido (para HTTP/1.1) | Muestra HTTP 502 (para HTTP/1.1) |
Distribución de tráfico (configuración de mapa de URL) | ||
La solicitud del cliente incluye un número de puerto | El número de puerto se ignora incluso si configuraste hosts con puertos en el mapa de URL. Solo se considera el nombre del host. Por ejemplo, las solicitudes de example.com:5000 coinciden con el servicio de backend de example.com .
|
Se tienen en cuenta el nombre del host y el número de puerto. Por ejemplo, las solicitudes de example.com:5000 coinciden con el servicio de backend de example.com:5000 . Si no hay coincidencia, se usa el servicio de backend predeterminado.
|