Una conexión proxificada de larga duración suele ocupar dos sockets: el del cliente y el del upstream. worker_connections cuenta ambos lados. Por eso, multiplicarlo por worker_processes no promete capacidad a los usuarios del proxy.

Cuando fallan las conexiones, sigue el límite indicado:

EvidenciaAjuste o estado del proceso que hay que inspeccionar
agotamiento de worker_connectionsEl presupuesto de conexiones del worker, incluidos los sockets de upstream
Mensaje del sistema operativo «Demasiados archivos abiertos»El límite de descriptores de archivo que hereda el proceso real del servicio

Los sockets de escucha, los registros y otros archivos abiertos también consumen descriptores. La reutilización de conexiones y la mezcla de tráfico cambian la relación entre usuarios y sockets.

worker_rlimit_nofile ajusta los límites del worker según los permisos del entorno. Una unidad de systemd puede fijar LimitNOFILE; el ulimit de un shell interactivo no cambia el servicio en ejecución.

Dimensiona los límites según la carga de trabajo e inspecciona quién los consume. Clientes inesperados o conexiones de upstream que fallan repetidamente pueden agotar un presupuesto antes suficiente. Un mayor número de procesos o un límite de memoria no reparan la falta de descriptores.

Artículos relacionados