• Nginx: 24: 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'命令来查看这些限制

    su - nginx

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

    ulimit -Hn

    ulimit -Sn


    在Linux系统级别上提高打开文件的限制

    nginx服务器可以打开的文件数量受你操作系统的限制,你可以轻松地修复这个问题by setting or increasing system open file limits 。编辑文件/etc/sysctl.conf, 键入:

    vi /etc/sysctl.conf

    追加或者修改下面的行:

    fs.file-max = 70000

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

    vi /etc/security/limits.conf

    像下面这样为所有用户或者nginx用户设置软硬限制:

    nginx   soft   nofile   10000

    nginx   hard  nofile   30000

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

    sysctl -p

    nginx worker_rlimit_nofile Option (在nginx级别上提高打开的文件句柄限制)

    nginx也有同样的限制,可以通过worker_rlimit_nofile来增加此限制数量。 来设置被nginx进程最大文件打开的数量,编辑nginx.conf文件,键入:

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

    追加或者编辑:

    worker_rlimit_nofile   30000;

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

    su - nginx

    ulimit -Hn

    ulimit -Sn

    输入示例:

    30000

    10000

    其实在国内的网站是上搜到的内容大都讲的差不多了,原先我也如此,但一直没有解决,最后发现最关键的参数没设置,故一直不能超过1024个active conntions. 通过设置此参数即可解决:

    worker_rlimit_nofile   30000;



    Translate from:http://www.cyberciti.biz/faq/linux-unix-nginx-too-many-open-files/

  • 相关阅读:
    配置基于全局地址池的DHCP
    配置基于接口地址池的DHCP
    将access数据库导入mysql
    php读取数据库数据,出现中文乱码(数据库中没有出现乱码)
    mysql 错误1054
    sublimetext3 安装php语法检测
    各种幻灯片特效SuperSlide
    jquery特效网
    生成loading图片
    iScroll内部textarea滑动不了bug
  • 原文地址:https://www.cnblogs.com/sxlfybb/p/2177983.html
Copyright © 2020-2023  润新知