Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ Elastic Load Balance/ Pasos iniciales/ Uso de balanceadores de carga compartidos (nivel avanzado)
Actualización más reciente 2024-07-29 GMT+08:00

Uso de balanceadores de carga compartidos (nivel avanzado)

Escenarios

Tiene dos aplicaciones web que se despliegan en ECS separados pero que utilizan el mismo nombre de dominio para el acceso. Puede establecer diferentes URLs para procesar solicitudes.

Para reenviar solicitudes basadas en URL, debe crear un balanceador de carga, agregar un oyente de HTTP o de HTTPS y agregar políticas de reenvío para especificar los URL.

Un oyente de HTTP se usa como ejemplo para describir cómo enrutar solicitudes desde dos URLs (/ELB01 y /ELB02) del mismo nombre de dominio (www.example.com) a diferentes servidores backend.

Requisitos previos

Para garantizar las comunicaciones normales entre el balanceador de carga y los servidores backend, debe comprobar las reglas de grupo de seguridad y las reglas de ACL de red configuradas para los servidores backend.

Cuando los servidores backend reciben solicitudes del balanceador de carga, las direcciones IP de origen se traducen en 100.125.0.0/16.

  • Las reglas de grupo de seguridad deben permitir el tráfico desde 100.125.0.0/16 a los servidores backend.
  • Las reglas de ACL de red son opcionales para las subredes. Si se configuran reglas de ACL de red para la subred backend del balanceador de carga, las reglas de ACL de red deben permitir el tráfico desde la subred backend del balanceador de carga a los servidores backend.

Si Transfer Client IP Address está habilitado para los oyentes TCP o UDP, las reglas de ACL de red y las reglas de grupo de seguridad no tendrán efecto. Puede usar el control de acceso para limitar qué direcciones IP pueden acceder al oyente.

Creación de ECS

Los ECS se utilizan como servidores backend para procesar solicitudes. Cada ECS necesita una EIP para acceder a Internet y configurar la aplicación en el ECS.

  1. Inicie sesión en la consola de gestión.
  2. En la esquina superior izquierda de la página, haga clic en y seleccione la región y el proyecto deseados.
  3. Pase el ratón sobre en la esquina superior izquierda para mostrar Service List y elija Compute > Elastic Cloud Server.
  4. Haga clic en Buy ECS, configure los parámetros y haga clic en Next.

    La siguiente tabla enumera las especificaciones de los dos ECS.
    Tabla 1 Especificaciones de ECS

    Concepto

    Valor de ejemplo

    Name

    ECS01 and ECS02

    OS

    CentOS 7.2 64bit

    vCPUs

    2

    Memory

    4 GiB

    System disk

    40 GiB

    Data disk

    100 GiB

    Bandwidth

    5 Mbit/s

  5. Envíe su solicitud.

Despliegue de la aplicación

Despliegue Nginx en los dos ECS y edite dos páginas HTML para que una página con el mensaje "Welcome to ELB test page one!" se devuelva cuando se acceda a ECS01, y la otra página con el mensaje "Welcome to ELB test page two!" se devuelve cuando se accede a ECS02.

  1. Inicie sesión en los ECS.
  2. Instalar e iniciar Nginx.
    1. Ejecute el comando wget para descargar el paquete de instalación de Nginx para su sistema operativo en uso. CentOS 7.6 se usa como ejemplo aquí.
      wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
    2. Ejecute el siguiente comando para crear el repositorio Nginx yum:
      rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm
    3. Ejecute el siguiente comando para instalar Nginx:
      yum -y install nginx
    4. Ejecute los siguientes comandos para iniciar Nginx y configurar la habilitación automática de Nginx al iniciar ECS:
      systemctl start nginx
      systemctl enable nginx
    5. Ingrese http://EIP bound to the ECS en el cuadro de dirección de su navegador. Si se muestra la siguiente página, se ha instalado Nginx.
      Figura 1 Nginx instalado correctamente
  3. Modifique la página de HTML de ECS01.
    Mueva el archivo index.html del directorio raíz predeterminado de Nginx /usr/share/nginx/html al directorio ELB01 y modifique el archivo para identificar el acceso a ECS01.
    1. Cree el directorio ELB01 y copie el archivo index.html en este directorio:

      mkdir /usr/share/nginx/html/ELB01

      cp /usr/share/nginx/html/index.html /usr/share/nginx/html/ELB01/

    2. Abra el archivo index.html.

      vim /usr/share/nginx/html/ELB01/index.html

    3. Pulse i para entrar en el modo de edición.
    4. Modifique el archivo index.html para que sea el siguiente:
       ...
          <body>
              <h1>Welcome to <strong>ELB</strong> test page one!</h1>
      
              <div class="content">
                  <p>This page is used to test the <strong>ELB</strong>!</p>
      
                  <div class="alert">
                      <h2>ELB01</h2>
                      <div class="content">
                          <p><strong>ELB test (page one)!</strong></p>
                          <p><strong>ELB test (page one)!</strong></p>
                          <p><strong>ELB test (page one)!</strong></p>
                      </div>
                  </div>
              </div>
          </body>
    5. Pulse Esc para salir del modo de edición. A continuación, escriba :wq para guardar la configuración y salir del archivo.
  4. Modifique la página HTML de ECS02.
    Mueva el archivo index.html del directorio raíz predeterminado de /usr/share/nginx/html Nginx al directorio ELB02 y modifique el archivo para identificar el acceso a ECS02.
    1. Cree el directorio ELB02 y copie el archivo index.html en este directorio:

      mkdir /usr/share/nginx/html/ELB02

      cp /usr/share/nginx/html/index.html /usr/share/nginx/html/ELB02/

    2. Abra el archivo index.html.

      vim /usr/share/nginx/html/ELB02/index.html

    3. Pulse i para entrar en el modo de edición.
    4. Modifique el archivo index.html para que sea el siguiente:
      ...
          <body>
              <h1>Welcome to <strong>ELB</strong> test page two!</h1>
      
              <div class="content">
                  <p>This page is used to test the <strong>ELB</strong>!</p>
      
                  <div class="alert">
                      <h2>ELB02</h2>
                      <div class="content">
                          <p><strong>ELB test (page two)!</strong></p>
                          <p><strong>ELB test (page two)!</strong></p>
                          <p><strong>ELB test (page two)!</strong></p>
                      </div>
                   </div>
              </div>
          </body>
    5. Pulse Esc para salir del modo de edición. A continuación, escriba :wq para guardar la configuración y salir del archivo.
  5. Utilice su navegador para acceder a http://ECS01 EIP/ELB01/ y http://ECS02 EIP/ELB02/ para verificar que Nginx se ha desplegado.

    Si se muestran las páginas HTML modificadas, se ha desplegado Nginx.

    • Página de HTML de ECS01
      Figura 2 Nginx desplegado correctamente en ECS01
    • Página de HTML de ECS02
      Figura 3 Nginx desplegado correctamente en ECS02

Creación de un balanceador de carga

El balanceador de carga necesita una EIP para acceder a la aplicación desplegada en los ECS por Internet. Puede determinar si desea vincular una EIP al balanceador de carga en función de sus requisitos. Para obtener más información, consulte Equilibrio de carga en una red pública o privada.

  1. En la esquina superior izquierda de la página, haga clic en y seleccione la región y el proyecto deseados.
  2. Pase el ratón sobre en la esquina superior izquierda para mostrar Service List y elija Networking > Elastic Load Balance.
  3. Haga clic en Buy Elastic Load Balancer y, a continuación, configure los parámetros.
    Figura 4 Comprar balanceador de carga elástica
  4. Haga clic en Next.
  5. Confirme la configuración y envíe su solicitud.
  6. Vea el balanceador de carga recién creado en la lista de balanceadores de carga.

Adición de un oyente

Agregue un oyente al balanceador de carga creado. Cuando agregue el oyente, cree un grupo de servidores backend, configure una comprobación de estado y agregue los dos ECS al grupo de servidores backend creado.

Configure dos políticas de reenvío para reenviar solicitudes de HTTP a los dos ECS, por ejemplo, las solicitudes de www.example.com/ELB01/ a ECS01 y las de www.example.com/ELB02/ a ECS02.
Figura 5 Reenvío de tráfico
  1. Pase el ratón sobre en la esquina superior izquierda para mostrar Service List y elija Networking > Elastic Load Balance.
  2. Busque el balanceador de carga creado y haga clic en su nombre.
  3. En Listeners, haga clic en Add Listener.
  4. Configure los parámetros de la siguiente manera:
    • Name: Introduzca un nombre, por ejemplo, listener-HTTP.
    • Frontend Protocol: Seleccione un protocolo, por ejemplo, HTTP.
    • Frontend Port: Ingrese un puerto, por ejemplo, 80.
  5. Cree un grupo de servidores backend, configure una comprobación de estado y haga clic en Finish.
    • Grupo de servidores backend
      • Name: Introduzca un nombre, por ejemplo, server_group-ELB.
      • Load Balancing Algorithm: Seleccione un algoritmo que el balanceador de carga utilizará para enrutar solicitudes, por ejemplo, Weighted round robin.
    • Comprobación de estado
      • Protocol: Seleccione un protocolo para que el balanceador de carga realice comprobaciones de estado en los servidores backend. Si el balanceador de carga utiliza TCP, HTTP o HTTPS para recibir solicitudes, el protocolo de comprobación de estado puede ser TCP o HTTP. Aquí usamos HTTP como ejemplo. Tenga en cuenta que el protocolo no se puede cambiar después de agregar el oyente.
      • Domain Name: Ingrese un nombre de dominio que se utilizará para las comprobaciones de estado, por ejemplo, www.example.com.
      • Health Check Port: Ingrese un puerto para que el balanceador de carga realice comprobaciones de estado en servidores backend, por ejemplo, 80.

Adición de una política de reenvío

  1. Busque el oyente recién agregado y haga clic en Add/Edit Forwarding Policy en la columna Forwarding Policies.
  2. Haga clic en Add Forwarding Policy y configure una política de reenvío.
    • Name: Ingrese un nombre de política de reenvío, por ejemplo, forwarding_política-ELB01.
    • Domain name: Ingrese un nombre de dominio que se utilizará para reenviar las solicitudes, por ejemplo, www.example.com. El nombre de dominio de la solicitud debe coincidir exactamente con el especificado en la política de reenvío.
    • URL: También puede especificar un URL para reenviar las solicitudes, por ejemplo, /ELB01/.
    • URL matching rule: Seleccione una regla para hacer coincidir la cadena de URL especificada con el URL de la solicitud. Hay tres opciones disponibles: Exact match, Prefix match y Regular expression match. Exact match tiene la máxima prioridad y Regular expression match la más baja. Seleccione Exact match aquí.
    • Action: Seleccione Forward to a backend server group.
    • Backend Server Group: Seleccione Create Backend Server Group.
  3. Cree un grupo de servidores backend y configure una comprobación de estado.
    • Grupo de servidores backend
      • Name: Introduzca un nombre, por ejemplo, server_group-ELB01.
      • Load Balancing Algorithm: Seleccione un algoritmo que el balanceador de carga utilizará para enrutar solicitudes, por ejemplo, Weighted round robin.
    • Comprobación de estado
      • Protocol: Seleccione un protocolo para que el balanceador de carga realice comprobaciones de estado en los servidores backend. Si el balanceador de carga utiliza TCP, HTTP o HTTPS para recibir solicitudes, el protocolo de comprobación de estado puede ser TCP o HTTP. Aquí usamos HTTP como ejemplo. Tenga en cuenta que el protocolo no se puede cambiar después de agregar el oyente.
      • Domain Name: Ingrese un nombre de dominio que se utilizará para las comprobaciones de estado, por ejemplo, www.example.com.
      • Health Check Port: Ingrese un puerto para que el balanceador de carga realice comprobaciones de estado en servidores backend, por ejemplo, 80.
    Figura 6 Configuración de una comprobación de estado
  4. Haga clic en el nombre del grupo de servidores backend configurado para la política de reenvío recién agregada.
  5. En la ficha Backend Servers, haga clic en la ficha Backend Servers y haga clic en Add.
  6. Seleccione el servidor que desea agregar, establezca el puerto de backend y haga clic en Finish.
    • Servidor backend: ECS01
    • Puerto backend: configúrelo en 80. Los servidores backend usarán este puerto para comunicarse con el balanceador de carga.
  7. Repita los pasos anteriores para agregar otra política de reenvío, cree un grupo de servidores backend y agregue ECS02 al grupo de servidores backend.

Verificación del equilibrio de carga

Después de configurar el balanceador de carga, puede acceder al nombre de dominio o al URL especificada para comprobar si los dos ECS son accesibles.

  1. Modifique el archivo C:\Windows\System32\drivers\etc\hosts en su PC para asignar el nombre de dominio al EIP del balanceador de carga.
    Vea el balanceador de carga de EIP en la página Summary del balanceador de carga.
    Figura 7 Archivo hosts en su PC
  2. En la CLI de su PC, ejecute el siguiente comando para comprobar si el nombre de dominio está asignado al EIP del balanceador de carga:

    ping www.example.com

    Si se devuelven paquetes de datos, el nombre de dominio se ha asignado al EIP del balanceador de carga.

  3. Utilice su navegador para acceder a http://www.example.com/ELB01/. Si se muestra la página siguiente, el balanceador de carga ha enrutado la solicitud a ECS01.
    Figura 8 Acceso a ECS01

    ELB01/ indica que se accede al directorio predeterminado llamado ECS01 mientras que ELB01 indica el nombre del archivo. Por lo tanto, se debe conservar la barra (/) que sigue a ELB01.

  4. Utilice su navegador para acceder a http://www.example.com/ELB02/. Si se muestra la página siguiente, el balanceador de carga ha enrutado la solicitud a ECS02.
    Figura 9 Acceso a ECS02