NGINX - equilibrio de carga

Equilibrio de carga ———> a través de proxy inverso para lograr

Proxy de siete capas y proxy de cuatro capas del proxy inverso nginx

Siete capas de proxy:

El método de proxy inverso más utilizado para el proxy de siete capas solo se puede configurar en el módulo http del archivo de configuración nginx y el nombre del método debe definirse como módulo "ascendente". Tenga en cuenta que no se puede escribir en el módulo del servidor. o en el módulo En la ubicación;

Al mismo tiempo, el módulo ascendente es un módulo independiente en el módulo http.

Proxy de siete capas: el proxy es solicitud y respuesta http

El principio de funcionamiento del proxy de siete capas:

Cliente --> solicitud http --> proxy de siete capas (en el servidor proxy) --> el servidor proxy reenvía http y solicita a un conjunto de servidores internos (clúster web) --> el cliente no sabe si el servidor Todavía está en la era de la solicitud del servidor interno, y la IP del servidor interno está oculta a través del servidor proxy.

        De hecho, se accede al servidor proxy, la solicitud se envía al proxy, y el proxy la reenvía al servidor web, y el servidor web responde———————en realidad, el servidor web responde

Proxy de capa 4

El proxy de cuatro capas se basa en el protocolo tcp/ip, y el método de reenvío de proxy de la capa de protocolo puede realizar un reenvío con equilibrio de carga en función de la dirección IP y el número de puerto; el proxy de cuatro capas no puede obtener la información de URL en el Solicitud http, pero solo puede procesar el paquete de datos tcp/udp Para reenvío, reenvío de tráfico, el nombre del método de configuración: flujo; el flujo no se puede configurar en el módulo http, se configura en el módulo global y pertenece a un módulo independiente

La diferencia entre un proxy de cuatro niveles y un proxy de siete niveles (¡énfasis!!)

1. El proxy de siete capas usa solicitudes http, mientras que el proxy de cuatro capas usa paquetes tcp/udp y reenvía tráfico;

        Proxy de siete capas: solicitud http, que puede analizar y procesar la solicitud en profundidad. Tales como: control de flujo, filtrado de contenidos;

        Proxy de cuatro capas: sin control de flujo ni filtrado de contenido;

        

        El proxy de cuatro capas suele ser adecuado para: escenarios que necesitan manejar una gran cantidad de solicitudes de conexión

        El proxy de siete capas suele ser adecuado para: escenarios de procesamiento y control precisos de solicitudes

                En el trabajo real, el proxy de cuatro niveles y el proxy de siete niveles se pueden usar juntos

2. La velocidad del agente de cuatro niveles es más rápida que la del agente de siete niveles;

        razón:

        (1): El proxy de cuatro capas es para el reenvío de tráfico y no puede analizar ni controlar la solicitud, por lo que debe ser rápido

        (2): El agente de cuatro capas usa el kernel y el kernel reenvía el tráfico, lo cual es rápido

      El proxy de capa 7 es relativamente lento

        razón:

        (1): El proxy de siete capas procesa y analiza la solicitud, lo cual es lento

        (2): El proxy de siete capas está en modo de usuario, control de acceso y procesamiento de tráfico, por lo que es lento

                El proxy de siete capas puede proporcionar un mejor servicio y una mejor experiencia de usuario

Proxy directo y proxy inverso

Proxy directo:

El módulo proxy_pass configura la dirección de acceso del servidor proxy, este módulo solo se puede escribir en el módulo de ubicación

proxy inverso:

El cliente accede al servidor proxy y el servidor proxy reenvía solicitudes o tráfico al servidor back-end. Habrá varios servidores web back-end, pero el usuario no sabe a qué servidor accede finalmente.

        El papel del proxy inverso: equilibrio de carga, alta disponibilidad, escalabilidad y mantenibilidad mejorada.

¿Cómo hacer proxy inverso en el trabajo?

Proxy inverso -> equilibrio de carga

        aguas arriba: equilibrio de carga basado en http, proxy inverso

Características:

1. El método de equilibrio de carga de las solicitudes http.

2. Sin caché

3. Algoritmo de equilibrio de carga:

(1) Algoritmo predeterminado: sondeo (rr); las solicitudes se asignan al servidor backend por turno. El algoritmo de sondeo se utiliza cuando varios servidores web tienen capacidades de procesamiento similares. El algoritmo predeterminado se puede omitir.

(2) Algoritmo de ponderación: según el algoritmo de sondeo, al asignar ponderaciones a diferentes servidores web, a los servidores con mayor capacidad de procesamiento se les pueden asignar más solicitudes; (Nota: aunque el peso está configurado, es posible que el resultado de la caída no siempre sea preciso )

(3) ip_hash: calcula un valor hash basado en la dirección IP. Después de usar el algoritmo ip_hash, la solicitud del mismo cliente se asignará al mismo servidor backend para garantizar la estabilidad de la sesión; cuando el número de servidores backend cambios, el valor hash se volverá a calcular y el servidor solicitado también puede cambiar

(4) El número mínimo de conexiones: less_conn; sondeará, características: enviará la solicitud al servidor web backend con el menor número de conexiones actuales, lo cual es adecuado para situaciones en las que el servidor backend tarda diferente tiempo en procesar tareas y evita todas las solicitudes se concentran en En servidores back-end con mayores capacidades de procesamiento, el algoritmo de conexión mínima se utilizará en combinación con el algoritmo de operación por turnos ponderado.

(5) url_hash: calcula el valor hash en función de la dirección URI. Cuando se utiliza el algoritmo url_hash, el URI de la misma solicitud se asignará al mismo servidor backend

        Escenarios de uso de algoritmos de equilibrio de carga:

        Escenarios a pequeña escala: la cantidad de concurrencia es pequeña y el algoritmo predeterminado puede cumplir las condiciones aplicables

        La capacidad de procesamiento del servidor web back-end se puede utilizar junto con la diferencia, el round-robin ponderado y el número mínimo de conexiones.

        Concurrencia a gran escala: ip_hash, url_hash; después de la primera solicitud, se generará un caché local y, debido al algoritmo hash, el servidor web back-end solicitado no cambiará, lo que puede mejorar la velocidad de acceso y acceder al caché local. . Reducir la capacidad de solicitudes del servidor backend.

        punto importante:

ip_hash: cuando cambia la cantidad de servidores backend, el servidor solicitado puede cambiar

uri_hash: cuando la dirección solicitada cambia, el servidor solicitado también puede cambiar

Supongo que te gusta

Origin blog.csdn.net/ZZZ_CCC01/article/details/132187092
Recomendado
Clasificación