nginx出现”too many open files”的解决
中午我的Linode服务器又犯了老毛病,所有网站都不能访问。是因为服务器的nginx不停出错,输出的错误日志(error.log)塞满了整个分区。删除掉错误日志文件并重启nginx以后可以恢复正常。 我查看了一下错误日志的内容,发现全部是“Too many open files while accepting new connection on 0.0.0.0:80”。用Too many open files搜了一下,找到了一个解决方案。 先查了一下文件系统最大可打开文件数: root@li55-4:~# cat /proc/sys/fs/file-max 70133 于是用ulimit修改了一下: root@li55-4:~# ulimit -n 10240 这下把最大打开文件数从1024提高到了10240,应该够用了吧。 最后把”ulimit -n 10240″这一行增加到/etc/rc.local中,以保证每次系统启动都能生效。 这样做是否有效,还有待后续观察。 经过实测,在rc.local中加入这一行是没有效果的,使用ulimit -n 10240进行修改也仅能影响到当前的shell。对这个问题,老王做过的探索,请移步此处查看。修改后,需要重启一次方可生效。 感谢智勇发现问题。

