首页 » Nginx » nginx报错accept4() failed (23: Too many open files in system)

nginx报错accept4() failed (23: Too many open files in system)

原文 http://blog.csdn.net/m0_37886429/article/details/76575625

2017-08-02 14:20:13阅读(588)

今天系统进不去了,用ssh连接服务器也非常慢,负载均衡显示后端连接异常,但是通过telnet命令查看后端端口是正常的,用其他的服务器telnet这台服务器的端口,不通,感觉很奇怪。

首先自己先写了一个测试的页面,打开80端口,但是还是访问出现问题,于是就查看了一下nginx的error.log日志文件,发现有很多像下面这样的报错:

nginx报错accept4() <a href=failed (23: Too many open files in system)" src="http://img.blog.csdn.net/20170802120029622?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbTBfMzc4ODY0Mjk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描述" title="">

一看就知道系统对打开文件数目做了限制,用下面命令

ulimit -n       #查看当前用户的文件描述符的数目

命令查看了一下,结果显示文件打开数目限制为1024,我们需要让这个数字更大一些,好让我们的网站访问并发更高一些。
  
下面是修改 ulimit 限制数的方法:
1.首先你得修改nginx.conf配置文件,在定义error.log日志路径的位置添加一行

worker_rlimit_nofile 65535;

2.在/etc/bashrc文件最后面添加下面内容

ulimit -n 65535

3.在/etc/security/limits.conf文件最后面添加下面内容

* soft nofile 65535
* hard nofile 65535

4.要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中

在/etc/pam.d/login 文件最后面添加下面内容
session required /lib/security/pam_limits.so
或者也可以在/etc/bashrc后面加上ulimit -n 65535

备注:

* 代表所有用户,如果想代表某个用户的话,则 user soft/hard nofile 65535
soft代表软连接 hard代表硬限制

查看软限制数量  ulimit -Sn
查看硬限制数量  ulimit -Hn

最新发布

CentOS专题

关于本站

5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!

小提示

按 Ctrl+D 键,
把本文加入收藏夹