Agregue un listener HTTP a una instancia de CLB para reenviar solicitudes HTTP sin cifrar. Los escenarios típicos incluyen redes internas, entornos de prueba y desarrollo, y transferencia de datos no sensibles.
Requisitos previos
Se creó una instancia de Classic Load Balancer. Create and manage CLB instances.
Procedimiento
Paso 1: Configurar el listener
Inicie sesión en la consola de CLB.
Seleccione la región de la instancia.
-
Utilice uno de los siguientes métodos para abrir el asistente de configuración del listener:
En la página Instances, busque la instancia deseada y haga clic en Configure Listener en la columna Actions.
En la página Instances, haga clic en el ID de la instancia deseada. Luego, en la pestaña Listener, haga clic en Add Listener.
-
En el asistente Protocol & Listener, complete las siguientes configuraciones y haga clic en Next.
Parámetro
Descripción
Select Listener Protocol
Seleccione un protocolo de listener.
Seleccione HTTP para este ejemplo.
Las instancias de CLB en la región de México no admiten listeners HTTP. Utilice un Application Load Balancer o una instancia de CLB en otra región.
Backend Protocol
Cuando HTTP es el protocolo del listener, el Backend Protocol se establece automáticamente en HTTP.
Listener Port
El puerto que recibe y reenvía solicitudes a los servidores backend. Valores válidos: de 1 a 65535.
Puerto HTTP predeterminado: 80.
Tags
Seleccione o introduzca una Tag Key y un Tag Value.
Advanced Settings
Haga clic en Modify para expandir la configuración avanzada.
Scheduling Algorithm
Seleccione un algoritmo de programación. Round Robin es el valor predeterminado.
-
Weighted Round-robin: Los servidores backend con pesos más altos reciben más solicitudes.
-
Round Robin: Las solicitudes se distribuyen a los servidores backend en secuencia.
Para obtener detalles sobre los algoritmos de programación y sus casos de uso, consulte Scheduling algorithms.
Redirection by Listener
Cuando está habilitada, CLB redirige las solicitudes HTTP a un listener HTTPS especificado mediante la devolución de un código de estado
302. Para conocer el proceso completo, consulte Redirect HTTP requests to HTTPS by using a CLB instance.Antes de habilitar la redirección, cree el listener HTTPS de destino y configure su certificado.
No se puede habilitar la redirección en un listener HTTP existente. Elimine el listener actual y cree uno nuevo.
Session Persistence
La persistencia de sesión está deshabilitada de forma predeterminada.
Cuando está habilitada, CLB enruta las solicitudes del mismo cliente al mismo servidor backend mediante cookies.
Cookie Option:
-
Insert Cookie: Especifique únicamente el periodo de tiempo de espera de la cookie.
En la primera solicitud, CLB inserta una cookie (ServerId) en la respuesta. Las solicitudes posteriores que contengan esta cookie se reenvían al mismo servidor backend.
Session Persistence Timeout Period: Si selecciona Insert Cookie, introduzca un periodo de tiempo de espera para la persistencia de sesión.
-
Rewrite Cookie: Especifique una cookie personalizada para insertar en la respuesta. Debe gestionar la caducidad y el ciclo de vida de esta cookie en sus servidores backend.
CLB sobrescribe la cookie original con la personalizada. Las solicitudes posteriores que contengan la nueva cookie se reenvían al mismo servidor backend.
Cookie Name: Si selecciona Rewrite Cookie, introduzca un nombre para la cookie.
Access Control
El control de acceso está deshabilitado de forma predeterminada.
Cuando está habilitado, seleccione un método de control de acceso y una lista de control de acceso (ACL) como lista blanca o lista negra para el listener.
-
Whitelist: allows only trusted IP addresses to access SLB.. Solo se reenvían las solicitudes provenientes de direcciones IP o bloques CIDR presentes en la ACL seleccionada. Las listas blancas conllevan riesgos: una vez configuradas, solo las direcciones IP enumeradas pueden acceder al listener.
Si se habilita una lista blanca pero la ACL está vacía, el listener reenvía todas las solicitudes.
-
Blacklist: denies access from specified IP addresses to SLB.. Se bloquean las solicitudes provenientes de direcciones IP o bloques CIDR presentes en la ACL seleccionada.
Si se habilita una lista negra pero la ACL está vacía, el listener reenvía todas las solicitudes.
NotaLas instancias IPv6 solo admiten ACL de IPv6, y las instancias IPv4 solo admiten ACL de IPv4. Create an ACL.
Bandwidth Throttling for Listeners
Para instancias de CLB con pago por ancho de banda, establezca un ancho de banda máximo por listener para limitar el tráfico. La suma de todos los valores de ancho de banda de los listeners no puede exceder el total de la instancia.
Deshabilitado de forma predeterminada. Todos los listeners comparten el ancho de banda de la instancia. Consulte CLB listeners share the bandwidth of an instance.
Importante-
Si una instancia de CLB orientada a Internet tiene un ancho de banda total de 5 Mbps y usted asigna los 5 Mbps completos al listener A y 0 Mbps al listener B, el listener B deja de ser accesible. Asigne el ancho de banda a cada listener con precaución.
-
Si una instancia de CLB interna tiene tres listeners y usted asigna un total de 5,120 Mbps a los listeners A y B, el listener C restante deja de ser accesible. Asigne el ancho de banda a cada listener con precaución.
-
Las instancias con pago por transferencia de datos no tienen un ancho de banda máximo predeterminado.
Idle Connection Timeout Period
Tiempo de espera de conexión inactiva. Valores válidos: de 1 a 60 segundos. Valor predeterminado: 15 segundos.
Si no se transfieren datos dentro del periodo de tiempo de espera, CLB cierra la conexión. Se establece una nueva conexión en la siguiente solicitud.
Nota-
El tiempo de espera máximo por inactividad para los listeners de capa 7 (HTTP/HTTPS) de CLB es de 60 segundos y no se puede aumentar. Si su carga de trabajo requiere un tiempo de espera por inactividad mayor, utilice un listener TCP de capa 4 (hasta 900 segundos) o Application Load Balancer (ALB, tiempo de espera por inactividad de hasta 3,600 segundos).
-
La configuración de tiempo de espera de conexión aplica a todo el listener. Para establecer un tiempo de espera diferente para un servidor backend específico, configure el servidor con un listener independiente y defina el tiempo de espera en ese listener.
Connection Request Timeout
Si un servidor backend no responde dentro de este periodo, CLB devuelve un error HTTP 504 al cliente. Valores válidos: de 1 a 180 segundos. Valor predeterminado: 60 segundos.
NotaEl tiempo de espera máximo de solicitud para los listeners de capa 7 (HTTP/HTTPS) de CLB es de 180 segundos y no se puede aumentar. Para tiempos de espera de solicitud más largos, utilice Application Load Balancer (ALB, tiempo de espera de solicitud de hasta 3,600 segundos).
GZIP Compression
Comprime tipos de archivo específicos. Habilitado de forma predeterminada.
Gzip admite los siguientes tipos de archivo:
text/xml,text/plain,text/css,application/javascript,application/x-javascript,application/rss+xml,application/atom+xmlyapplication/xml.Custom HTTP Header
Seleccione los encabezados HTTP personalizados que desea agregar:
-
Agregue el encabezado
X-Forwarded-Forpara obtener la dirección IP real del cliente.NotaLos listeners de capa 7 de CLB utilizan X-Forwarded-For de forma predeterminada para obtener las direcciones IP de los clientes. Esto no se puede deshabilitar. Si el encabezado contiene varias direcciones IP, la primera corresponde a la IP real del cliente. Retrieve client IP addresses over a Layer 7 listener.
-
Agregue el encabezado
SLB-IDpara obtener el ID de la instancia de CLB. -
Agregue el encabezado
SLB-IPpara obtener la dirección IP de la instancia de CLB. -
Agregue el encabezado
X-Forwarded-Protopara obtener el protocolo del listener de la instancia de CLB.
Obtain Client Source IP Address
Obtiene las direcciones IP reales de los visitantes. Habilitado de forma predeterminada.
Automatically Enable Listener
Especifica si se debe iniciar el listener después de su creación. Habilitado de forma predeterminada.
-
Paso 2: Agregar servidores backend
Agregue servidores backend para procesar las solicitudes. Utilice el grupo de servidores predeterminado o cree un grupo de servidores virtuales. Consulte Server groups. Este ejemplo utiliza el grupo de servidores predeterminado.
Los listeners HTTP no admiten grupos de servidores primarios/secundarios.
En el paso Backend Servers, seleccione Default Server Group y haga clic en Add More.
En el paso Servers, seleccione los servidores backend que desea agregar y haga clic en Next.
-
En el paso Ports/Weights, establezca el peso y haga clic en Add.
NotaEl peso predeterminado es 100. Los servidores backend con pesos más altos reciben más solicitudes.
Un servidor con peso 0 no recibe nuevas solicitudes.
-
Especifique el puerto que utiliza cada servidor backend (instancia ECS) para recibir solicitudes y haga clic en Next. Valores válidos: de 1 a 65535.
Paso 3: Configurar comprobaciones de estado
CLB utiliza comprobaciones de estado para determinar la disponibilidad de los servidores backend, lo que mejora la fiabilidad general del servicio.
Opcional: En el paso Health Check, haga clic en Modify para cambiar la configuración y haga clic en Next. Configure and manage CLB health checks.
En el paso Confirm, revise la configuración del listener. Haga clic en Modify si necesita cambiar alguna configuración.
-
Confirme la configuración y haga clic en Submit. Una vez creado el listener, haga clic en OK.
El nuevo listener aparece en la página.
Preguntas frecuentes
Encabezados de respuesta eliminados por listeners de capa 7
Para admitir la persistencia de sesión, CLB modifica encabezados de respuesta como Date, Server, X-Pad y X-Accel-Redirect provenientes de los servidores backend.
Soluciones alternativas:
Agregue un prefijo a los encabezados de respuesta personalizados (por ejemplo, xl-server, xl-date) para evitar que CLB los procese.
Cambie de un listener HTTP de capa 7 a un listener TCP de capa 4.
El encabezado Transfer-Encoding: chunked en las respuestas
Síntoma:
Después de asignar un nombre de dominio a un load balancer de capa 7, el encabezado "Transfer-Encoding: chunked" aparece en las respuestas HTTP cuando se accede desde una computadora local. Este encabezado está ausente cuando se accede directamente al servidor backend.
Causa:
El balanceo de carga de capa 7 utiliza el proxy inverso Tengine, el cual aplica codificación de transferencia fragmentada (chunked) al cuerpo de la respuesta.
El balanceo de carga de capa 4 solo reenvía tráfico y no agrega este encabezado.
Compatibilidad con WebSocket en listeners de CLB
Los listeners HTTP de CLB admiten WebSocket de forma predeterminada. Use CLB to enable real-time messaging with WebSocket.
¿Cómo configuro CLB para permitir solo nombres de dominio específicos o bloquear el acceso directo por IP?
Los listeners HTTP/HTTPS (capa 7) de CLB admiten reglas de reenvío basadas en dominios y URL, pero CLB no proporciona una función integrada de lista de permitidos o lista de bloqueados de dominios. Puede implementar indirectamente el control de acceso a nivel de dominio combinando reglas de reenvío con grupos de servidores virtuales. Tenga en cuenta que esto es control de acceso, no protección de seguridad. Para defenderse contra ataques como ataques CC e inyección SQL, utilice Web Application Firewall (WAF).
Bloquear dominios no coincidentes o acceso directo por IP (política de respaldo)
Cree un grupo de servidores virtuales vacío sin servidores backend agregados.
Establezca el destino de reenvío predeterminado del listener (el grupo de servidores que recibe tráfico cuando ninguna regla de reenvío coincide) en este grupo de servidores virtuales vacío.
Configure reglas de reenvío basadas en dominios que dirijan el tráfico coincidente con sus dominios objetivo al grupo de servidores virtuales backend real.
Con esta configuración, las solicitudes que coinciden con una regla de reenvío se enrutan al grupo de servidores virtuales backend correspondiente, mientras que las solicitudes que no coinciden con ninguna regla de reenvío —incluido el acceso directo por IP y las solicitudes de dominios no reconocidos— pasan al grupo de servidores virtuales vacío establecido como destino de reenvío predeterminado y no pueden llegar a ningún backend porque no hay ningún servidor backend disponible.
Bloquear el acceso desde un dominio específico
Utilizando el grupo de servidores virtuales vacío creado en el escenario anterior, cree una regla de reenvío que dirija el dominio que desea bloquear a ese grupo de servidores virtuales vacío. Las solicitudes de ese dominio se bloquearán porque no hay ningún servidor backend disponible.
Documentos relacionados
Para entornos de producción, utilice HTTPS para la transmisión cifrada. Add an HTTPS listener.
-
Temas sobre grupos de servidores:
Para conocer cómo funcionan las comprobaciones de estado, consulte CLB health checks. Para obtener instrucciones sobre cómo configurar las comprobaciones de estado, consulte Configure and manage CLB health checks.
Para agregar reglas de reenvío basadas en nombres de dominio o URL a un listener HTTP, consulte Forward requests based on domain names or URLs. CLB enruta el tráfico que no coincide con ninguna regla de reenvío al destino de reenvío predeterminado del listener (el grupo de servidores de respaldo). Si sus servidores backend no están en ese grupo de servidores de respaldo, debe configurar explícitamente reglas de reenvío para dirigir el tráfico al grupo de servidores correspondiente. De lo contrario, CLB no podrá reenviar el tráfico.
Para obtener direcciones IP de clientes con un listener HTTP, consulte Retrieve client IP addresses over a Layer 7 listener.