Nginx aguanta miles de conexiones por trabajador sin esfuerzo. Si su sitio va lento, casi siempre está esperando a PHP o a la base de datos que hay detrás. Subir estos números mueve la cola, no la acorta.
Los dos números
worker_processes auto; # one per CPU core - leave it
events {
worker_connections 1024; # per worker
multi_accept on;
}
auto iguala el número de núcleos, y esa es la respuesta correcta en toda máquina que no sea muy rara. La capacidad total es trabajadores por conexiones, y un navegador que abre varias conexiones a un mismo sitio cuenta varias veces.
El error que quiere decir: súbalo
grep "worker_connections are not enough" /var/log/nginx/error.log
Esa línea, y solo esa línea, es motivo para subir el número. Sin ella, no es ese límite el que está tocando.
Cuál suele ser el límite de verdad
- Los hijos de PHP-FPM: la cola está ahí, no en Nginx. Vea dimensionar un pool de PHP-FPM.
- Las conexiones a la base: vea demasiadas conexiones.
- Los archivos abiertos: el trabajador toca el límite del sistema mucho antes que el suyo.
# the one worth raising, with the connections
worker_rlimit_nofile 65535;
Recargue para aplicar, nunca reinicie
sudo nginx -t && sudo systemctl reload nginx
Una recarga arranca trabajadores nuevos para las conexiones nuevas y deja terminar a los viejos. Un reinicio tira lo que va en vuelo, y en un sitio con tráfico eso es un error visible para alguien.