Configuración del equilibrio de carga mediante Apache HTTP Server

Puede mejorar el rendimiento y aumentar la disponibilidad del sistema utilizando el equilibrio de carga. El equilibrio de carga distribuye las tareas entre todos los procesadores disponibles y mejora la capacidad de proceso y la escalabilidad. Puedes configurar el equilibrio de carga para () utilizando Apache HTTP Server.

Antes de empezar

Antes de configurar el equilibrio de carga, siga estos pasos. Para obtener instrucciones, consulte los enlaces de temas relacionados que se proporcionan a continuación.
  1. Instálalos, pero no inicies los componentes ni el servidor. Para obtener más información, consulta la sección «Instalación ».
  2. Configura los componentes para que se comuniquen. Para obtener más información, consulta «Configuración de los componentes para que se comuniquen ».
  3. Instale Apache HTTP Server. Para obtener más información, consulte https://www.apache.org Apache HTTP Server Project.

Acerca de esta tarea

En este procedimiento, realizará estos pasos:
  1. Prepare el almacén de claves SSL.
  2. Configura el servidor 1 como servidor de equilibrio de carga.
  3. Configura los servidores del 2 al n como servidores de equilibrio de carga.
  4. Modifique los archivos httpd.conf y httpd-ssl.conf.
  5. Inicie Apache HTTP Server.
  6. Iniciar componentes.
  7. Iniciar el servidor 1.
  8. Iniciar los servidores del 2 al n.

Para los objetivos de este procedimiento, suponga que Apache HTTP Server está configurado para exponer el puerto 8443 al acceso público. Toda las solicitudes se redirigen a servidores internos; por ejemplo, host_privado_1 en el puerto 7443 o host_privado_2 en el puerto 6443. En función del entorno, el puerto configurado para que lo utilice Apache Tomcat se puede definir en un valor diferente para evitar conflictos de puerto.

Procedimiento

  1. Coloque un archivo de claves de certificado SSL válido en una ubicación accesible en el sistema.
  2. Configure los servidores del 1 al n como servidores de equilibrio de carga:
    1. Abra el archivo festival.xml , que se encuentra en el directorio /server/festival/config/ . Establezca el parámetro instanceId en un valor exclusivo con este formato:
      48819f14-cecd-49d2-a91a-20e646b83f71
    2. Copie y aumente el valor en cada servidor del clúster; por ejemplo:

      En el servidor 2, utilice 48819f14-cecd-49d2-a91a-20e646b83f72

      En el servidor 3, utilice 48819f14-cecd-49d2-a91a-20e646b83f73
    3. Abra el archivo server.xml , que se encuentra en el directorio server/conf . Cambie todos los valores de puerto en el archivo por valores exclusivos para modo que exista un conjunto de valores exclusivo en cada servidor del clúster. Modifique estos valores:
      Server port="8005"
      Connector port="8080"
      redirectPort="8443" 
      port="8443"
      Connector port="8009" 
    4. En el archivo server.xml , añada jvmRoute al elemento de motor. Cambie esta entrada:
      <Engine name="Catalina" defaultHost="localhost">
      hasta:
      <Engine name="Catalina" defaultHost="localhost" jvmRoute="DWAbalance1">

      donde el jvmRoute valor es único para cada una de las instancias del servidor.

      Estos valores corresponden a asignaciones de direccionamiento en el servidor web Apache , tal como se muestra en 3.c. El servidor de equilibrio de carga utiliza las asignaciones de direccionamiento para dar soporte a sesiones adherentes, que dirigen las solicitudes de usuario al mismo servidor durante una única sesión.

    5. Repite el paso anterior para cada servidor. Aumente el jvmRoute valor para cada servidor; por ejemplo: DWAbalance3, DWAbalance4, DWAbalance5.
  3. Configure el servidor de aplicaciones ( Apache HTTP Server ) para que procese las solicitudes de SSL editando el httpd.conf archivo, que se encuentra en el conf directorio de la instalación de Apache.
    1. Descomente estos módulos:
      • LoadModule proxy_module modules/mod_proxy.so
      • LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
      • LoadModule proxy_http_module modules/mod_proxy_http.so
      • LoadModule status_module modules/mod_status.so
      • LoadModule ssl_module modules/mod_ssl.so
    2. Ve a la sección de configuración de « SSL », que comienza con #Secure (SSL/TLS) connections.
    3. Añada las entradas siguientes, asegurándose de añadir entradas ProxyPassReverse y BalancerMember exclusivas para cada servidor del clúster.
      #
      # reverse proxy
      #
      SSLProxyEngine On
      ProxyPreserveHost On
      
      ProxyPass /balancer-manager !
      ProxyPass / balancer://mycluster/ stickysession=JSESSIONID|jsessionid nofailover=On
      
      ProxyPassReverse / https://private_host_1:7443/
      ProxyPassReverse / https://private_host_n:6443/
      <Proxy balancer://mycluster>
         BalancerMember https://private_host_1:7443 route=DWAbalance1 loadfactor=50   
         BalancerMember https://private_host_n:6443 route=DWAbalance2 loadfactor=50
         # Add an entry for each BalancerMember in your cluster.
      </Proxy>
      Cambie de host_privado_1 a host_privado_n al nombre de host completo para cada servidor; por ejemplo server1.example.com. Añada entradas de BalancerMember para cada host del clúster de equilibrio de carga. Asegúrese de utilizar el número de puerto que se ha configurado para Apache Tomcat en cada servidor.
    4. Descomente esta línea:
      Include conf/extra/httpd-ssl.conf
      Para obtener más información sobre cómo configurar el servidor de aplicaciones ( Apache HTTP Server ) para el equilibrio de carga, consulte « Apache » en la documentación de la Fundación de Software de Servidor de Aplicaciones ( Apache ).
    5. Opcional: Para ver el estado del equilibrador de carga, añada estas entradas al archivo httpd.conf :
      ProxyPass /balancer-manager !
      <Location /balancer-manager>
        SetHandler balancer-manager
        Order Deny,Allow
        Allow from your host.domain or another host
        Deny from all
      </Location>

      Para obtener más información sobre el control de acceso, consulte https://www.apache.org/docs/2.2/howto/access.html en la documentación de Apache Software Foundation.

  4. Edite el archivo httpd-ssl.conf , que se encuentra en el directorio /conf/extra de la instalación de Apache .
    1. Actualice el nombre de host y el puerto en el que se ha configurado SSL.
    2. Actualice los valores según se requiera, incluidos estos valores:
      • SSLCertificateFile
      • SSLCertificateKeyFile
      Nota: Si el archivo de claves SSLCertificateKeyFile está protegido por una contraseña, la contraseña se debe especificar cada vez que se inicie el servidor. Puede eliminar la contraseña, pero antes de hacerlo, tenga en cuenta las implicaciones de seguridad de esta acción en el entorno.
  5. Inicie Apache HTTP Server. Los errores se registran en el error.log archivo, que se encuentra en la instalación de Apache, dentro de la /logs carpeta.
  6. Inicie los componentes en ambos servidores.
  7. Inicia los servidores del 1 al n.