Для одного хостинга картинок арендован выделенный сервер. На нем 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, нужно выполнить перезагрузку, после чего проблема отступит.
1) Читаем логи. (Если пустые чиним)
2) Если после починки видна в логах ошибка accept() failed (24: Too many open files)
В конфиг nginx прописвыем(к примеру):
worker_processes 2;
worker_rlimit_nofile 16384;
events {
worker_connections 8192;
}
Исходя из статьи:
В /etc/nginx/nginx.conf прописать новое значение worker_connections, равное 16384 поделить на значение worker_processes.