我正在运行Ubuntu服务器。 这就是我所做的:
在/etc/security/limits.conf:
* soft nofile 10240 * hard nofile 10240
并添加到/etc/pam.d/common-session:
session required pam_limits.so
而nginx会自己configuration/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,也是我的服务器,但仍然没有。 我在这里做错了什么?
我以www数据用户身份运行nginx。
configuration/etc/security/limits.conf是专用于PAM 。 一般而言, PAM不用于pipe理诸如nginx之类的 服务的软件。
因此,从init , upstart到systemd的所有内容都根本不使用limits.conf 。
nginx具有特定的configuration设置,用于增加文件描述符限制worker_rlimit_nofile 。
在所有configuration块之外(不在http或server )添加:
worker_rlimit_nofile 10240
检查/etc/security/limits.conf的权限。 它应该是世界可读的(模式0644)。
我花了很多时间试图找出为什么限制不会生效。