directivas de equilibrio de carga de nginx
Nginx es un servidor web de alto rendimiento y un servidor proxy inverso que se puede configurar para lograr equilibrio de carga. En Nginx, las principales directivas para el equilibrio de carga incluyen upstream, server y location.
La directiva upstream se utiliza para definir un conjunto de servidores ascendentes, que pueden ser servidores web, servidores proxy inversos u otras máquinas que brindan servicios. Esta directiva generalmente enumera todos los servidores ascendentes, separados por espacios. Podemos usar la directiva proxy_pass en el bloque del servidor para reenviar solicitudes de clientes a un servidor en el grupo de servidores ascendente.
Nginx reenvía la solicitud a un servidor en el grupo de servidores ascendentes de acuerdo con el algoritmo de equilibrio de carga. De forma predeterminada, Nginx utiliza el algoritmo de operación por turnos para el equilibrio de carga, pero también puede especificar otros algoritmos de equilibrio de carga agregando la directiva load_balance en el bloque ascendente, como el algoritmo de hash de IP, el algoritmo de número mínimo de conexiones, etc.
Características de Nginx:
1. Multiplataforma: Nginx se puede compilar y ejecutar en la mayoría de los sistemas operativos tipo Unix, y también hay versiones para Windows.
2. La configuración es extremadamente sencilla: muy fácil de empezar. El estilo de configuración es el mismo que el del desarrollo del programa y la configuración es la misma que la de Dios.
3. Conexión sin bloqueo y de alta concurrencia: la primera fase de copia de datos y E/S del disco es sin bloqueo. La prueba oficial puede admitir 50.000 conexiones simultáneas y puede alcanzar de 20.000 a 30.000 conexiones simultáneas en entornos de producción reales.
4. Impulsado por eventos: el mecanismo de comunicación utiliza el modelo epoll para admitir conexiones simultáneas más grandes.
5. Estructura del proceso principal/proceso de trabajo: un proceso principal genera uno o más procesos de trabajo.
6. Pequeño consumo de memoria: el consumo de memoria es muy pequeño cuando se procesan grandes solicitudes simultáneas. Entre 30.000 conexiones simultáneas, iniciar 10 procesos Nginx solo consume 150 M de memoria (15 M * 10 = 150 M).
Referencia: Enciclopedia Baidu-nginx