Я использую Ubuntu Server. Вот что я сделал:
/etc/security/limits.conf:
* soft nofile 10240
* hard nofile 10240
И добавил в /etc/pam.d/common-session:
session required pam_limits.so
И сам nginx conf /etc/nginx/nginx.conf
user www-data;
worker_processes 1; #I have only 1 core
pid /run/nginx.pid;
events {
worker_connections 10240;
# multi_accept on;
}
worker_rlimit_nofile 10240;
Но пытаюсь подтвердить изменения:
root@ubuntu_ngix:~# ulimit -Hn
4096
root@ubuntu_ngix:~# ulimit -Sn
1024
Я перезапускаю nginx, а также мой сервер, но все равно ничего. Что я здесь делаю не так?
Я запускаю nginx как пользователь www-data.
Конфигурация /etc/security/limits.conf
специфичен для PAM. PAM, как правило, не используется программным обеспечением, управляет услугами Такие как nginx.
Так что все от в этом, чтобы выскочка, чтобы systemd не используйте limits.conf
вообще.
nginx
имеет специальный параметр конфигурации для увеличения предела дескриптора файла worker_rlimit_nofile.
Вне всех блоков конфигурации (не в http
или server
) Добавить:
worker_rlimit_nofile 10240
Проверьте разрешения /etc/security/limits.conf
. Он должен быть доступен для чтения всем (режим 0644).
Я провел много лун, пытаясь понять, почему ограничения не действуют раньше.