解决Nginx 24 Too Many Open Files

首先运行:

1
su -nginx

然后运行:

1
2
ulimit -Hn
ulimit -Sn

这几条命令可以查看软硬文件句柄和打开文件数目,然后我们就可以提升打开文件的数目. 编辑 /etc/sysctl.conf:

1
vi /etc/sysctl.conf

追加或者修改下面的行:

1
fs.file-max = 70000

保存并关闭文件. 编辑 /etc/security/limits.conf:

1
vi /etc/security/limits.conf

修改成类似下面的样子:

1
2
nginx   soft   nofile   10000
nginx   hard  nofile   30000

这里设置的就是软硬文件句柄和打开文件数目,保存关闭后运行sysctl命令:

1
sysctl -p

这样我们做的修改会即使生效. nginx也有类似的设置:

1
vi /usr/local/nginx/conf/nginx.conf (视你的配置文件的位置而定)

追加或者编辑:

1
worker_rlimit_nofile   30000;

保存并关闭文件,重新加载nginx配置,并重新执行开始查看软硬限制的命令:

1
2
3
4
5
6
su - nginx
ulimit -Hn
ulimit -Sn
#反馈:
30000
10000

最后设置nginx的一个参数:

1
worker_rlimit_nofile   30000;

这样我们就解决了Nginx: 24: Too Many Open Files这个错误.