Configuración de equilibrio de carga de Apache: mod

  
                  

En términos generales, el equilibrio de carga es distribuir la solicitud del cliente a cada servidor real en el back-end para lograr el equilibrio de carga. Otra forma es usar dos servidores, uno como el servidor principal (Maestro) y el otro como el modo de espera activa (Hot Standby), solicitando todas las partes al servidor primario e inmediatamente cambiando al servidor de respaldo cuando el servidor primario está inactivo. Para mejorar la disponibilidad general del sistema.

También me sorprendió la primera vez que vi este título. ¿Apache todavía puede hacer balanceo de carga? Es demasiado poderoso. Después de algunas investigaciones, se encontró que estaba bien y que la función no era mala en absoluto. Esto se debe al módulo mod_proxy. Es digno de un apache poderoso.

Tonterías, vamos a explicar el método de equilibrio de carga.

En términos generales, el equilibrio de carga consiste en distribuir la solicitud del cliente a cada servidor real en el back-end para lograr el equilibrio de carga. Otra forma es usar dos servidores, uno como el servidor principal (Maestro) y el otro como el modo de espera activa (Hot Standby), solicitando todas las partes al servidor primario e inmediatamente cambiando al servidor de respaldo cuando el servidor primario está inactivo. Para mejorar la fiabilidad global del sistema.

1. Configuración de equilibrio de carga

1) .Configuración básica

Apache puede manejar estos dos requisitos. Vamos a hablar de cómo hacer balanceo de carga. Suponiendo que el nombre de dominio de un servidor apache es www.a.com, primero debe habilitar varios módulos de Apache:

Código Httpd.conf LoadModule proxy_module modules /mod_proxy.so LoadModule proxy_balancer_module_module modules /mod_proxy_balancer.so LoadModule proxy_http_module_módulo Mod_proxy_http.so

mod_proxy proporciona funcionalidad de servidor proxy, mod_proxy_balancer proporciona equilibrio de carga, y mod_proxy_http permite que los servidores proxy admitan HTTP. Si cambia mod_proxy_http a otros módulos de protocolo (como mod_proxy_ftp), es posible que sea compatible con el equilibrio de carga de otros protocolos. Los amigos interesados ​​pueden probarlo por sí mismos.

Luego agregue la siguiente configuración:

Código Httpd.conf ProxyRequests Off < Proxy balancer: //mycluster > BalancerMember http://node-a.myserver.com:8080 BalancerMember http: //node-b.myserver.com:8080 < /Proxy > ProxyPass /balancer: //mycluster /# Advertencia: ¡La siguiente configuración es solo para fines de depuración, nunca la agregue a producción! ! ! < Location /balancer-manager > SetHandler balancer-manager ordenar Denegar, Permitir Denegar de todos Permitir desde localhost < /Location >

Nota: node-a.myserver.com, node-b.myserver.com Es el nombre de dominio de los otros dos servidores, no el nombre de dominio del servidor actual.

Como se puede ver en el ProxyRequests Off anterior, el equilibrador de carga es en realidad un proxy inverso, excepto que su dirección de reenvío de proxy no es cierta Un servidor específico, pero un equilibrador: //protocolo:

ProxyPass /balanceador: //la dirección del protocolo mycluster se puede definir de manera informal. Luego, establezca el contenido del protocolo de compensación en el segmento. El comando BalancerMember agrega la dirección del servidor real en el grupo de equilibrio de carga.

El siguiente párrafo se usa para monitorear el trabajo de balanceo de carga, se puede agregar durante la depuración (¡prohibido en el entorno de producción!), luego visite http: //localhost /balancer-manager /para ver Condiciones de trabajo de balanceo de carga.

OK, reinicie el servidor después del cambio, acceda a la dirección de su servidor Apache (www.a.com), puede ver el efecto del equilibrio de carga.

Mensaje de error:

Visite el mensaje de la página web Error interno del servidor, vea el archivo error.log

Código de error.log [warn] proxy: ningún controlador de protocolo era válido para la URL /admin /login_form. Si está utilizando una versión DSO de mod_proxy, asegúrese de que los submódulos de proxy estén incluidos en la configuración mediante LoadModule.

El motivo es: # ProxyPass /balancer: //es posible que falte uno del mycluster /

2). Asignación de relación de carga

Abra la interfaz del administrador de balanceadores y podrá ver que la solicitud se distribuye de manera uniforme.

¿Qué pasa si no quiero distribuir de manera uniforme? Agregue el parámetro loadfactor a BalancerMember, que va desde 1-100. Por ejemplo, si tiene tres servidores con una relación de distribución de carga de 7: 2: 1, solo configure esto:

Código Httpd.conf ProxyRequests Off < Proxy balancer: //mycluster > BalancerMember http: //node-a .myserver.com: 8080 loadfactor = 7 BalancerMember http://node-b.myserver.com:8080 loadfactor = 2 BalancerMember http://node-c.myserver.com:8080 loadfactor = 1 < /Proxy > ProxyPass /Balancer: //mycluster

3). Algoritmo de asignación de carga

De manera predeterminada, el equilibrio de carga intenta hacer que la cantidad de solicitudes aceptadas por cada servidor sea una relación preestablecida. Si desea cambiar el algoritmo, puede utilizar la propiedad lbmethod. Tales como:

Código Httpd.conf ProxyRequests Off < Proxy balancer: //mycluster > BalancerMember http://node-a.myserver.com:8080 loadfactor = 7 BalancerMember http: //node-b.myserver .com: 8080 loadfactor = 2 BalancerMember http://node-c.myserver.com:8080 loadfactor = 1 < /Proxy > ProxyPass /balancer: //mycluster ProxySet lbmethod = bytraffic

lbmethod posible Los valores son:

lbmethod = byrequests Equilibrado por las solicitudes (predeterminado)

lbmethod = bytraffic Seguir el saldo de tráfico

lbmethod = bybusyness Equilibrado por la actividad (Siempre asignado a Active El servidor con el menor número de solicitudes)

Consulte la documentación de Apache para conocer los principios de varios algoritmos.

Copyright © Conocimiento de Windows All Rights Reserved