Назад | Перейти на главную страницу

Как увеличить лимит открытых файлов для главного процесса nginx в Ubuntu 14.04 LTS?

Не обман: Это не дубликат этот вопрос. Я уже разбирался в этом вопросе. Это помогает поднять лимит на worker processes, но nginx master process продолжает сохранять 1024 и 4096 соответственно. Последний нюанс и есть суть вопроса.


Эта проблема:

Я увеличиваю лимит файлового дескриптора для nginx в systemd следующим образом:

1) Создать limit.conf в /etc/systemd/system/nginx.service.d/

2) Сохраните следующие строки в этом файле

[Service]
LimitNOFILE=100000

3) Перезагрузите nginx через sudo service nginx restart

Теперь, когда я это сделаю cat /proc/$(ps aux | grep "nginx: master process" | grep -v grep | awk '{print $2}')/limits | grep "Max open files" Я вижу, что этот лимит установлен правильно.

Однако есть загвоздка!

Если я перезагружу систему, а затем снова вхожу в нее, по умолчанию для nginx master process вернулся к 1024 и 4096 (Я запускаю вышеупомянутый cat команду, чтобы узнать).

Но если я выдам sudo service nginx start, предел снова увеличивается по желанию.

Как убедиться, что этот параметр не теряется при перезагрузке? Был бы признателен за наглядный пример. Я не хочу вручную выдавать sudo service nginx restart каждый раз.


p.s. Я внес дополнительные изменения в /etc/security/limits.conf и /etc/pam.d/common-session также. Если вам понадобится дополнительная информация, спросите меня.

Более того, /etc/systemd/system/multi-user.target.wants/nginx.service содержит:

[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

Но это 14.04, так что это не сработало бы. Как лучше всего добиться этого в Ubuntu 14.04? Хотел бы наглядный пример, который действительно работает.