Red de conocimiento informático - Aprendizaje de programación - La diferencia entre LVS, Nginx y HAproxy

La diferencia entre LVS, Nginx y HAproxy

Las ventajas de Nginx son:

1. Al trabajar por encima de la séptima capa de la red, puede crear algunas estrategias de desvío para aplicaciones http, como nombres de dominio y estructuras de directorios, y es regular Las reglas son más potentes y flexibles que HAProxy, que es una de las principales razones por las que actualmente es muy popular. Nginx se puede explotar en muchas más situaciones que LVS basándose únicamente en esto.

2. Nginx depende muy poco de la estabilidad de la red. En teoría, puede realizar funciones de carga si se puede hacer ping. Esta es también una de sus ventajas; por el contrario, LVS depende en gran medida de la estabilidad de la red. Tengo una gran experiencia en esto;

3. La instalación y configuración de Nginx es relativamente simple y es más conveniente de probar. Básicamente, puede imprimir errores en los registros. La configuración y prueba de LVS lleva relativamente mucho tiempo y LVS depende en gran medida de la red.

3. Puede soportar una alta presión de carga y es estable. Si el hardware no es malo, generalmente puede soportar decenas de miles de concurrencia y el grado de carga es relativamente menor que LVS.

4. Nginx puede detectar fallas internas del servidor a través del puerto, como códigos de estado, tiempos de espera, etc. devueltos por el servidor que procesa las páginas web, y volverá a enviar solicitudes que devuelvan errores a otro nodo, pero entre ellos. La desventaja es que no admite la detección de URL. Por ejemplo, si el usuario está cargando un archivo y el nodo que procesa la carga falla durante el proceso de carga, Nginx cambiará la carga a otro servidor para reprocesarlo y LVS se desconectará directamente si se carga un archivo grande, o muy. archivos importantes, los usuarios pueden no estar satisfechos.

5. Nginx no solo es un excelente software de equilibrador de carga/proxy inverso, sino que también es un potente servidor de aplicaciones web. LNMP también es una arquitectura web muy popular en los últimos años y su estabilidad también es muy buena en entornos de alto tráfico.

6. Nginx se está volviendo cada vez más maduro como caché de aceleración inversa web y es más rápido que el servidor Squid tradicional. Puede considerar usarlo como un acelerador de proxy inverso.

7. Nginx se puede utilizar como proxy inverso de nivel medio. En este nivel, Nginx básicamente no tiene rivales. El único que se puede comparar con Nginx es lighttpd. La funcionalidad y configuración completa de Nginx no es tan clara y fácil de leer, y la información de la comunidad es mucho menos activa que Nginx.

8. Nginx también se puede utilizar como página web estática y servidor de imágenes, y su rendimiento en esta área es incomparable. La comunidad Nginx también es muy activa y hay muchos módulos de terceros.

Las desventajas de Nginx son:

1. Nginx solo puede admitir los protocolos http, https y correo electrónico, por lo que el alcance de la aplicación es menor.

2. La verificación de estado del servidor back-end solo admite la detección a través del puerto y no admite la detección a través de la URL. No se admite la retención directa de la sesión, pero se puede resolver mediante ip_hash.

LVS

LVS: utilice el clúster del kernel de Linux para implementar un servidor de equilibrio de carga de alto rendimiento y alta disponibilidad, que tiene buena escalabilidad (Escalabilidad), confiabilidad (Confiabilidad) y capacidad de administración.

Las ventajas de LVS son:

1. Tiene una fuerte resistencia a la carga. Funciona por encima de la 4ª capa de la red y solo se utiliza para distribución. Esta característica también determina que tiene el rendimiento más sólido entre el software de equilibrio de carga y consume relativamente poca memoria y recursos de CPU.

2. La capacidad de configuración es relativamente baja, lo cual es tanto una desventaja como una ventaja. Debido a que no hay nada que se pueda configurar demasiado, no requiere demasiado contacto, lo que reduce en gran medida las posibilidades de que los humanos. error.

3. Funciona de manera estable porque tiene una fuerte resistencia a la carga y una solución completa de respaldo en caliente de doble máquina, como LVS+Keepalived. Sin embargo, el que más utilizamos en la implementación de proyectos es LVS/DR +. Mantener vivo.

4. No hay tráfico. LVS solo distribuye solicitudes y el tráfico no sale de sí mismo. Esto garantiza que el rendimiento del equilibrador IO no se verá afectado por un gran tráfico.

5. La gama de aplicaciones es relativamente amplia. Debido a que LVS funciona en la capa 4, puede equilibrar la carga de casi todas las aplicaciones, incluidas http, bases de datos, salas de chat en línea, etc.

Las desventajas de LVS son:

1. El software en sí no admite el procesamiento de expresiones regulares y no puede separar dinámicas y estáticas y ahora muchos sitios web tienen fuertes demandas en este sentido. es la ventaja de Nginx/HAProxy+Keepalived.

2. Si la aplicación del sitio web es relativamente grande, LVS/DR+Keepalived será más complicado de implementar, especialmente si hay una máquina con Windows

Server detrás de ella. y la configuración siguen siendo El proceso de mantenimiento es más complicado. En términos relativos, Nginx/HAProxy+Keepalived es mucho más simple.

HAProxy

Las características de HAProxy son:

1. HAProxy también admite hosts virtuales.

2. Las ventajas de HAProxy pueden complementar algunas de las deficiencias de Nginx, como la compatibilidad con la retención de sesiones y la guía de cookies; también admite la detección del estado del servidor back-end al obtener la URL especificada;

3.HAProxy es similar a LVS, es solo un software de equilibrio de carga puramente en términos de eficiencia, HAProxy tendrá una mejor velocidad de equilibrio de carga que Nginx y también es mejor que Nginx en procesamiento concurrente.

4. HAProxy admite el reenvío de equilibrio de carga del protocolo TCP. Puede equilibrar la carga de lecturas de MySQL y detectar y equilibrar la carga de los nodos MySQL back-end. Puede utilizar LVS+Keepalived para equilibrar la carga del maestro y de MySQL. esclavos.

5. Hay muchas estrategias de equilibrio de carga de HAProxy. Los algoritmos de equilibrio de carga de HAProxy ahora incluyen los siguientes 8 tipos:

①roundrobin, que significa sondeo simple, no entraré en detalles. esto es básicamente equilibrio de carga;

② static-rr, que indica que se basa en el peso, se recomienda prestar atención

③leastconn, que indica que es el mínimo; La persona conectada se procesa primero, se recomienda prestar atención;

④ fuente, es decir, según la IP de origen de la solicitud. Esto es similar al mecanismo IP_hash de Nginx. Lo usamos como método para resolver problemas de sesión. Se recomienda prestar atención;

⑤ri, que significa según el URI de la solicitud;

⑥rl_param, significa que 'balance url_param' requiere un nombre de parámetro de URL. parámetro de URL solicitado;

⑦hdr(nombre), significa bloquear cada solicitud HTTP según el encabezado de la solicitud HTTP;

⑦hdr(nombre), significa bloquear cada solicitud HTTP según el Encabezado de solicitud HTTP;

p>

⑧rdp-cookie (nombre), significa bloquear y codificar cada solicitud TCP de acuerdo con la cookie (nombre).

Mi blog está escrito por mí blog.jxhs.me