Red de conocimiento informático - Aprendizaje de programación - nginx logra una alta concurrencia y sus principios

nginx logra una alta concurrencia y sus principios

1. Principio de alta concurrencia de Nginx (epoll multiproceso (un solo subproceso) logra una alta concurrencia)

1. Cuando se inicia nginx, habrá un proceso principal y varios procesos de trabajo independientes. En epoll (), el kernel mantiene una lista vinculada. El método epoll_wait puede obtener la longitud de la lista vinculada. Si la longitud no es 0, significa que el descriptor de archivo está listo

2. Implementación del kernel, epoll se implementa en función de la función de devolución de llamada establecida en cada sockfd con el controlador de dispositivo

3. Cuando ocurre un evento en un sockfd, el evento se asociará con él. Cuando ocurre un evento en un sockfd, se llamará a la función de devolución de llamada correspondiente, agregando así el sockfd a la cadena, mientras que otros sockfds en el estado "inactivo" no se agregarán a la cadena

4. obtiene la descripción del archivo de la lista vinculada anterior, que se realiza utilizando mmap para evitar la sobrecarga de copiar una gran cantidad de descriptores de archivos

5. Mapeo de memoria (mmap): archivo mapeado en memoria, que asigna un archivo. a una parte de la memoria sin tener que realizar operaciones de E/S en el archivo

(1) Ventajas de nginx sobre apache

1. Ligero, igual que los servicios web. Ocupa menos memoria y recursos que Apache

2. Ligero: nginx es un servicio web liviano. En los servicios web, nginx ocupa menos memoria y recursos. p>

2. Anticoncurrencia, nginx procesa las solicitudes de forma asincrónica y sin bloqueo, mientras que apache bloquea. En alta concurrencia, nginx puede mantener un bajo consumo de recursos y un alto rendimiento.

3. Alta disponibilidad. Diseño altamente modular, la escritura del módulo es relativamente simple, la comunidad es activa y se producen rápidamente varios módulos de alto rendimiento

(2) En comparación con Apache

1. y tiene menos errores Pocos, buena estabilidad

2 Se puede reescribir, la función de reescritura es más poderosa que nginx

3 Hay tantos módulos, básicamente todo lo que se te ocurra. se puede encontrar