2016-10-10 7 views
1

Я запускаю лак с nginx как прокси-сервер на ubuntu, и я получаю (24: Слишком много открытых файлов) ошибку каждые несколько дней. Перезапуск nginx решает проблему. После изучения этой ошибки я обнаружил, что общим решением является увеличение worker_rlimit_nofile в nginx.conf. Я чувствую, что это не настоящее решение, так как ограничение, которое я установил, также может достигнуть.Nginx с ошибкой лака: не удалось (24: Слишком много открытых файлов)

Почему nginx хранит эти файлы (я считаю, что это сокеты) открыт? и каково будет решение моей ситуации?

UPDATE:

Я просто заметил, что сотни лаковых сокетов открываются, когда я бегу LSOF. Я считаю, что моя проблема в том, что эти сокеты не закрываются.

ответ

0

Это хорошая практика для увеличения стандартного максимального количества файлов, открытых на вашем сервере, когда это веб-сервер, то же самое касается количества эфемерных портов.

Я думаю, что по умолчанию число открытых файлов 1024, который слишком мал для лака

Я устанавливаю его 131072

ulimit -n 131072

+0

Благодаря Benjamin. Я задавался вопросом, почему эти гнезда остаются открытыми. Несколько дней назад я остановил передачу трафика на сервер лака, и я все еще вижу, что эти сокеты открыты и получают ту же ошибку (24: Слишком много открытых файлов) – guyyug

+0

Я не разработчик лаков, но я думаю, что каждый поток лаков управляет сокетом, и поскольку лак порождает множество потоков (нет вреда, он оптимизирован), ему нужно много сокетов. Если вы посмотрите на конфигурацию сервиса лака, вы должны увидеть где-нибудь '# Open files (обычно 1024, что слишком мало для лака) ulimit -n $ {NFILES: -131072}' –

 Смежные вопросы

  • Нет связанных вопросов^_^