Cuando varias aplicaciones necesitan acceso público a través de la misma dirección IP, asociar cada una con una instancia independiente de Server Load Balancer (SLB) incrementa los costos. Puede compartir una única instancia de SLB entre aplicaciones si asigna un nombre de dominio dedicado a cada una y configura políticas de reenvío. SLB enruta las solicitudes HTTP a la aplicación correcta según los nombres de dominio y las URL de cada solicitud.
El reenvío basado en dominio con un puerto compartido solo es compatible con listeners HTTP en clústeres de Elastic Compute Service (ECS).
Funcionamiento
Cada aplicación se asigna a un grupo de servidores virtuales independiente detrás de la misma instancia de SLB. Una política de reenvío asocia cada nombre de dominio con su grupo de servidores virtuales correspondiente. Cuando SLB recibe una solicitud HTTP, inspecciona el nombre de dominio y reenvía la solicitud al grupo de servidores virtuales coincidente.
En el siguiente ejemplo, la dirección IP de la instancia de SLB está asignada a dos nombres de dominio, cada uno asociado con un grupo de servidores virtuales diferente:
|
Nombre de dominio |
Grupo de servidores virtuales |
Aplicación |
|
|
vServer Group A |
App1 |
|
|
vServer Group B |
App2 |

Una solicitud a abc***.com llega a App1. Una solicitud a xyz***.com llega a App2. Ambas utilizan la misma dirección IP pública y el mismo puerto.
Por ejemplo, suponga que tiene dos aplicaciones. Una es la aplicación de usuarios, que se utiliza para consultar pedidos. La otra es la aplicación de pedidos, que se usa para el inicio de sesión de usuarios. Ambas aplicaciones comparten la misma dirección IP pública y el mismo puerto. De forma predeterminada, se utiliza el puerto 80. Puede configurar distintos nombres de dominio para reenviar el tráfico de las aplicaciones: u.domain.com para la aplicación de usuarios y o.domain.com para la aplicación de pedidos.

Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Una instancia de SLB (Application Load Balancer (ALB) o Classic Load Balancer (CLB)). Para crear una, consulte Create instance
Dos o más aplicaciones desplegadas en un clúster de ECS en Enterprise Distributed Application Service (EDAS)
Un nombre de dominio dedicado para cada aplicación (por ejemplo,
u.domain.comyo.domain.com)
Descripción general de la configuración
El siguiente procedimiento muestra cómo asociar una instancia de SLB llamada edas-test-slb con las instancias de dos aplicaciones y configurar distintos nombres de dominio para reenviar el tráfico:
Asocie la instancia de SLB con la primera aplicación (
spring-cloud-provider) y configure una política de reenvío basada en dominio con la regla de reenvíoprovider.test.com.Asocie la misma instancia de SLB con la segunda aplicación (
spring-cloud-consumer), utilizando el mismo puerto de listener pero un grupo de servidores virtuales y una política de reenvío diferentes (consumer.test.com).Compruebe que cada nombre de dominio enrute a la aplicación correcta.
Paso 1: Asociar la instancia de SLB con la primera aplicación
Abrir la configuración de la aplicación
Inicie sesión en la consola de EDAS.
En el panel de navegación izquierdo, seleccione Application Management > Applications.
En la página Applications, seleccione una región en la barra de navegación superior y una opción en la lista desplegable Microservice Namespace. Seleccione ECS Clusters en la lista desplegable Cluster Type.
Haga clic en el nombre de la primera aplicación (por ejemplo,
spring-cloud-provider).-
En la sección Application Settings de la página Basic Information, haga clic en Add junto a SLB (Internet).
NotaSi ya existe una instancia de SLB vinculada, se mostrarán su dirección IP y su puerto. Haga clic en Modify para cambiar la configuración, o en Unbind para quitar el vínculo.
Seleccionar la instancia de SLB
En el asistente AddLoad Balancing(Public), establezca el parámetro SLBType en ALB o CLB.
Seleccione la instancia de SLB en la lista desplegable SLB (Internet) y haga clic en Next.
Configurar el listener
-
En el paso Select and Configure Listener, configure un puerto de escucha:
ALB: Seleccione un puerto de escucha existente.
CLB: Seleccione Select Existing Listening Port para reutilizar un puerto existente, o seleccione Add Listening Port para crear un nuevo listener.
-
Si crea un nuevo listener, configure los siguientes parámetros y haga clic en Next.
Parámetro
Descripción
Protocol
Seleccione HTTP. Los listeners HTTP enrutan las solicitudes según los nombres de dominio y las URL. Para obtener más información, consulte Agregar un listener HTTP para ALB o CLB.
Frontend Port Number
El puerto que SLB utiliza para el tráfico externo. Si otro protocolo ya usa este puerto, elija uno diferente o elimine primero el listener existente desde la consola de SLB.
Health Check Path (URI)
La URI utilizada para comprobar el estado del backend. Valor predeterminado:
/_ehc.html. Para obtener más información, consulte Configure and manage CLB health checks.Backend Port Number
El puerto de la aplicación. Este valor es fijo.
Configurar el grupo de servidores virtuales y la política de reenvío
-
En el paso Configure vServer Group and Forwarding Policy, configure un grupo de servidores virtuales y una política de reenvío basada en dominio. Opción A: Usar un grupo de servidores virtuales existente Opción B: Crear un nuevo grupo de servidores virtuales
Seleccione Create VServer Group e introduzca un nombre en VServer Group Name.
Seleccione Add Forwarding Policy e introduzca el nombre de dominio (por ejemplo,
provider.test.com) en el campo Forwarding Policy.
NotaEl grupo de servidores predeterminado no admite políticas de reenvío. Seleccione un grupo de servidores virtuales en su lugar.
Haga clic en Next.
Confirmar la configuración
En el paso Confirm, revise la configuración de SLB y haga clic en Confirm.
Paso 2: Asociar la instancia de SLB con aplicaciones adicionales
Repita la configuración para cada aplicación adicional. Abra la segunda aplicación (por ejemplo, spring-cloud-consumer) en la consola de EDAS y siga los mismos pasos que en Step 1, con las siguientes diferencias:
|
Configuración |
Primera aplicación |
Aplicaciones adicionales |
|
Instancia de SLB |
|
La misma instancia de SLB |
|
Puerto de listener |
Puerto 80 (HTTP) |
El mismo puerto |
|
vServer group |
Grupo nuevo o existente |
Un grupo diferente |
|
Política de reenvío |
|
Un dominio diferente (por ejemplo, |
Paso 3: Comprobar la configuración
Después de asociar la instancia de SLB con todas las aplicaciones, compruebe que cada nombre de dominio enrute a la aplicación correcta. Para consultar el procedimiento completo de verificación, vea Verification.
Probar con entradas DNS locales
Si los nombres de dominio aún no están registrados con un proveedor de DNS, pruebe la configuración agregando entradas al archivo hosts en una computadora Linux o macOS.
Por ejemplo, si la dirección IP de la instancia de SLB es 123.1.XX.XX, agregue las siguientes líneas a /etc/hosts:
123.1.XX.XX provider.test.com
123.1.XX.XX consumer.test.com
Acceda a cada aplicación para confirmar que el enrutamiento sea correcto:
http://provider.test.com-- debería llegar aspring-cloud-providerhttp://consumer.test.com-- debería llegar aspring-cloud-consumer
Pasos siguientes
Configurar una instancia de SLB dedicada para una aplicación -- utilizar una instancia de SLB dedicada en lugar de compartir una
Agregar un listener HTTP para ALB o CLB -- opciones detalladas de configuración de listeners