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.