nginx提示:Too many openfiles这种错误问题的原因是因为linux文件系统最大可打开文件数为1024而你的nginx中的error.log出现大量的Too many open files,说明文件句柄不够用了所以就错误提示出来了。
如果nginx的error.log出现大量的Too many open files,说明文件句柄不够用了,这时候我们需要加大系统的文件句柄数和nginx的允许最大的连接数。
默认情况下linux文件系统最大可打开文件数为1024,对于一个应用于生产环境下的服务器来说,这个设置太下,例如在用nginx做web服务器,当并发达到一定数量时,可以看到error.log里出现大量的“Nginx accept() failed (24: Too many open files)” 错误。解决这个问题的办法有两种:
方法一:
使用ulimit -n 655350 把打开文件上限设置为655350,同时还需要修改nginx的配置文件,把worker_rlimit_nofile 值 worker_connections 值设置为一样。
方法二:
在/etc/security/limits.conf文件中添加如下信息:
- soft nofile 655360
- hard nofile 655360