nginx访问报错:Too many open files accept (修改ulimit参数)

 

使用nginx作为web服务,访问的时候报错:"accept() failed (24: Too many open files)"
原因时:nginx的连接数超过了系统设定的最大值造成的.
处理办法如下: 

[root@kvm-server nginx]# ulimit -n
1024
[root@kvm-server nginx]# ulimit -n 655360       #把打开文件数设置足够大,这是临时修改方案
[root@kvm-server nginx]# ulimit -n
655360

同时修改nginx.conf文件,添加下面内容,然后重启nginx
worker_rlimit_nofile 655350;

这样就可以解决Nginx连接过多的问题,Nginx就可以支持高并发。
另外, ulimit -n 还会影响到mysql 的并发连接数。提高文件连接数设置,也能提高mysql并发。

注意: 用ulimit -n 655360 修改只对当前的shell有效,退出后失效。所以,需要永久性修改
永久生效方法:
修改/etc/security/limits.conf,在文件底部添加:
* soft nofile 655360
* hard nofile 655360
星号代表全局, soft为软件,hard为硬件,nofile为这里指可打开文件数。

另外,要使limits.conf文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。
查看 /etc/pam.d/login 文件中有:
session required /lib/security/pam_limits.so

这样,问题就迎刃而解了!

ulimit : 设置最大进程数和最大文件打开数, 这个一般是系统优化的必要手段.

1) 临时修改
为了优化linux性能,可能需要修改这个最大值。临时修改的话ulimit -n 655360就可以了,重启后失效。
[root@localhost ~]# ulimit -n
1024
[root@localhost ~]# ulimit -n 655360
[root@localhost ~]# ulimit -n
655360

2) 永久修改
修改/etc/security/limits.conf文件, 在文件末尾添加
[root@localhost ~]# vim /etc/security/limits.conf

* soft nofile 655360
* hard nofile 655360
* soft nproc 655360
* hard nproc 655360

=============================
上面配置内容中:
*               代表针对所有用户 
noproc     是代表最大进程数 
nofile      是代表最大文件打开数

如上修改后重启服务或服务器,如果发现没更改过来, 还需要修改下面梁文文件

在/etc/security/limits.d/90-nproc.conf文件末尾添加
[root@localhost ~]# vim /etc/security/limits.d/90-nproc.conf
* soft nproc 655360
* hard nproc 655360

在/etc/security/limits.d/def.conf文件末尾添加
[root@localhost ~]# vim /etc/security/limits.d/def.conf
* soft nofile 655360
* hard nofile 655360

然后重启后生效
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值