nginx 报错 accept4 () failed (24:Too many open files)
在《nginx 报错 worker_connections are not enough》文章中我们解决了worker_connections are not enough的问题,但随着用户的增长,nginx的并发连接越来越多,nginx经常出现如下错误:
错误显示nginx打开了了太多的文件,在linux系统时连接也属于文件的一种。
首先我们查看服务器最大允许打开的文件数量:
可以看到系统最多支持打开的文件数量上限为:782719
查看当前服务器设置的最多可打开的文件数量:
只有65535,有点小,在/etc/security/limits.conf文件调整:
*表示针对所有的用户,修改数量为500000,这个数字可以按你的需要来调整,不过不能大于系统支持的上限。
最后修改nginx的配置,调整worker_rlimit_nofile设置的数值:
worker_rlimit_nofile:表示nginx最多可以打开的文件数量,在linux中所有的资源都是文件,连接也属于一种文件,这里设置为409600,可以按照自己的实际设置,不能大于上面设置的服务器最多可以打开的文件数量即可。
版权声明: 本文为 InfoQ 作者【Java联盟】的原创文章。
原文链接:【http://xie.infoq.cn/article/47f1fca9587a9d84aba45bb9c】。文章转载请联系作者。
评论