• Nginx, ошибка accept() failed (24: Too many open files)

      0 comments

    Для одного хостинга картинок арендован выделенный сервер. На нем LAMP с nginx-фронтендом.
    В один прекрасный день Nginx начинает периодически выдавать ошибку 500 при заходе на страницы.

    В логах что-то похожее на

    [alert] 8668#0: accept() failed (24: Too many open files)

    Это значит, превышен лимит количества одновременно открытых файлов.

    Решаем:
    В конец файла /etc/security/limits.conf нужно добавить такие строки:

    * soft nofile 16384
    * hard nofile 16384

    В текущей консоли от рута (от судо не пашет) сделать

    ulimit -n 16384

    Хотя это необязательно, если есть возможность перезагрузить сервер.

    В /etc/nginx/nginx.conf прописать новое значение worker_connections, равное 16384 поделить на значение worker_processes.

    Если не делали ulimit -n 16384, нужно выполнить перезагрузку, после чего проблема отступит :)

    Write a comment