Nginx Too Many Open Files 错误和解决方案

在我的nginx配置文件中获取以下错误日志:

2010/04/16 13:24:16 [crit] 21974#0: *3188937 open() "/usr/local/nginx/html/50x.html" failed (24: Too many open files), client: 88.x.y.z, server: example.com, request: "GET /file/images/background.jpg HTTP/1.1", upstream: "http://10.8.4.227:81//file/images/background.jpg", host: "example.com"

 

像 CentOS / RHEL / Fedora Linux or UNIX这样的操作系统碰到这样的问题如何修复?

 

Linux / Unix 设置了软硬文件句柄和打开文件的数目,你可以使用'ulimit'命令来查看这些限制,切换到到nginx 用户

su - nginx

要看这些值,请使用下面的命令:

ulimit -Hn

ulimit -Sn

1.在Linux上提高打开文件的限制,nginx服务器可以打开的文件数量受你操作系统的限制,编辑文件/etc/sysctl.conf

vi /etc/sysctl.conf

追加或者修改下面的行:

fs.file-max = 70000

2.保存并关闭文件,编辑 /etc/security/limits.conf

vi /etc/security/limits.conf

像下面这样为所有用户或者nginx用户设置软硬限制(如果没有nginx用户就写root用户)

nginx   soft   nofile   10000

nginx   hard  nofile   30000

3.保存并关闭,最后重新载入sysctl命令,以使以上改变生效:

sysctl -p

4.nginx worker_rlimit_nofile Option (在nginx级别上提高打开的文件句柄限制),nginx也有同样的限制,可以通过worker_rlimit_nofile来增加此限制数量。 来设置被nginx进程最大文件打开的数量,编辑nginx.conf文件

vi /usr/local/nginx/conf/nginx.conf (视你的配置文件的位置而定)

追加或者编辑:

worker_rlimit_nofile   30000;

5.保存并关闭文件,重新加载nginx配置,并重新执行开始查看软硬限制的命令:

nginx -s reload

su - nginx

ulimit -Hn

ulimit -Sn

成功应返回如下:(如果不成功,不是 30000和10000,则 logout 注销用户,我就是这样的,成功) 解决!

30000

10000

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值