Skip to main content

nginx: [emerg] open() "/var/log/nginx/domains/domain.es.error.log" failed (24: Too many open files)

Introducción

Nunca me había enfrentado a este problema con nginx, pero me surgio en una instalación de Directadmin.

> nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] open() "/var/log/nginx/domains/DOMAIN.es.error.log" failed (24: Too many open files)
nginx: configuration file /etc/nginx/nginx.conf test failed

La cuestión es que pese a ello, ngins esta arriba, renicia bien, y no muestra error es un serio handicap para el trabajo con nginx, pues en un entorno en que tenemos y editamos las configruaciones, ya sea de forma directa o indirecta, es necesaio verificar que todo esta correcto antes de proceder al reinicio.

Solución temporal

Como he tratado de hacer varias cosas que no em han servidor, estoy tratando el tema con el comando de abajo, ya que el nginx funciona correctamente sin problemas

> bash -c 'ulimit -n 65535 && nginx -t'
22536

Solución definitiva

Editar el fichero /etc/security/limits.conf añadiendo al final el código de abajo.

root soft nofile 65535
root hard nofile 65535

Debemos salir de la sesión para que sea efectivo.

Aviso

Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad. El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de Castris

Si necesitas soporte profesional puedes contratar con Castris soporte profesional.