如果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用户和nginx运行用户nobody增加文件句柄数,如果你需要为每个用户都增加该值,则可以加入以下内容:
| 代码如下 | 复制代码 |
|
* soft nofile 10240 |
|
注意:通过ulimit修改打开文件上限只会影响当前shell环境,所以这是一个临时解决方法,终极解决方法使用方法二。
方法二:在/etc/security/limits.conf文件中添加如下信息:
| 代码如下 | 复制代码 |
|
* soft 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信息。如果仍然有大量该错误产生,则按照以上步骤继续加大文件句柄数。
注意:这个方法修改后必须重启机器才能使之生效。
Tplink企业版路由器WiFi名称的默认设置介绍(Tplink企业版路由器WiFi名称的默认设置是什么)
Tplink路由器灯常亮无法上网的原因分析(如何解决Tplink路由器灯常亮无法上网的问题)
Tplink千兆企业级路由器自动重启的作用和优势介绍(如何设置Tplink千兆企业级路由器自动重启功能)
一根天线的tplink路由器有哪些(一根天线的Tplink路由器的特点和优势介绍)
tplink路由器外网访问不了nas(Tplink路由器外网访问NAS的原因分析)
Tplink无法搜到路由器的原因分析(如何解决Tplink无法搜到路由器的问题)