nginx Too many open files

nginx提示:Too many open files这种错误问题的原因是因为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 值设置为一样。

1、更改系统文件句柄

 代码如下复制代码
vi /etc/security/limits.conf

增加以下内容:

 代码如下复制代码

root soft nofile 10240
root hard nofile 10240
nobody soft nofile 10240
nobody hard nofile 10240

通常我们只需要为root用户和nginx运行用户nobody增加文件句柄数,如果你需要为每个用户都增加该值,则可以加入以下内容:

 代码如下复制代码

* soft nofile 10240
* hard nofile 10240


注意:通过ulimit修改打开文件上限只会影响当前shell环境,所以这是一个临时解决方法,终极解决方法使用方法二。

方法二:在/etc/security/limits.conf文件中添加如下信息:

 代码如下复制代码

* soft nofile 655360
* hard nofile 655360


2、更改nginx.conf参数

 代码如下复制代码

vi /etc/nginx/nginx.conf

找到worker_rlimit_nofile和worker_connections参数,将值改为:

 代码如下复制代码

worker_rlimit_nofile 10240;

worker_connections 10240;

3、重新启动nginx

nginx -s reload
这样新的允许最大连接数就生效了。

4、检查error.log,看看是否还有Too many open files信息。如果仍然有大量该错误产生,则按照以上步骤继续加大文件句柄数。


注意:这个方法修改后必须重启机器才能使之生效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值