nginx报错socket() failed (24: Too many open files)【转】
2021/12/4 7:19:53
本文主要是介绍nginx报错socket() failed (24: Too many open files)【转】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
nginx 错误日志:
1 2 |
2016/02/28 21:07:36 [alert] 11569#0: *41512 socket() failed (24: Too many open files) while connecting to upstream, client: 192.168.1.110, server: localhost, request: "GET / HTTP/1.1" , upstream: "http://127.0.0.1:8080/" , host: "192.168.1.218"
2016/02/28 21:07:36 [alert] 11569#0: *41512 socket() failed (24: Too many open files) while connecting to upstream, client: 192.168.1.110, server: localhost, request: "GET / HTTP/1.1" , upstream: "http://127.0.0.1:8080/" , host: "192.168.1.218"
|
1 |
解决办法:
|
一、Linux打开文件最大数设置
查看打开文件最大数
ulimit -a
设置一
ulimit -HSn 102400 #只是当前shell有效
设置二
(1)ulimit -HSn 102400
(2)将ulimit -HSn 102400写到/etc/profile中,因为每次登录终端时,都会自动执行/etc/profile。
(3)令修改open files的数值永久生效,则必须修改配置文件:vi /etc/security/limits.conf. 在这个文件后加上:
* soft nofile 102400
* hard nofile 102400
这种方法需要重启机器才能生效。
另一个,查看下nginx的配置文件。
查看 worker_rlimit_nofile 配置项
worker_rlimit_nofile 655350;
二、nginx打开文件最大数设置
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;
三、Linux操作系统中打开文件数量的查看方法
ulimit -n 4096
也就是限制用户的最大文件打开数为4096个
在网上查了关于怎么查看文件打开数的文章大致有两种说法
/proc/sys/fs/file-nr
该文件与 file-max 相关,它有三个值:
已分配文件句柄的数目
已使用文件句柄的数目
文件句柄的最大数目
该文件是只读的,仅用于显示信息。
查看所有进程的文件打开数
lsof |wc -l
查看某个进程打开的文件数
lsof -p pid |wc -l
英文原文: Syntax: worker_rlimit_nofile number; Default: — Context: main Changes the limit on the maximum number of open files (RLIMIT_NOFILE) for worker processes. Used to increase the limit without restarting the main process. 中文翻译: 为nginx工作进程改变打开最多文件描述符数目的限制。用来在不重启主进程的情况下增加限制。 例如: worker_rlimit_nofile 204800; 理论上这个值是最多打开文件数(ulimit -n)与nginx工作进程相除。
转自
nginx socket() failed (24: Too many open files) - 王恒志 - 博客园
https://www.cnblogs.com/xzlive/p/14973823.html
Nginx: 24: Too Many Open Files 错误和解决方案 - 房客 - 博客园
https://www.cnblogs.com/sxlfybb/archive/2011/09/15/2177983.html
Linux操作系统中打开文件数量的查看方法 - 心灵捕手 - 博客园 https://www.cnblogs.com/Dennis-mi/articles/6084581.html
(24条消息) nginx学习随笔--worker_rlimit_nofile_zhxuewu的专栏-CSDN博客_worker_rlimit_nofile
https://blog.csdn.net/zhxuewu/article/details/77932441
- 英文原文:
Syntax: worker_rlimit_nofile number; Default: — Context: main
- 1
- 2
- 3
Changes the limit on the maximum number of open files (RLIMIT_NOFILE) for worker processes. Used to increase the limit without restarting the main process.
-
中文翻译:
为nginx工作进程改变打开最多文件描述符数目的限制。用来在不重启主进程的情况下增加限制。
- 1
例如:
worker_rlimit_nofile 204800;
- 1
理论上这个值是最多打开文件数(ulimit -n)与nginx工作进程相除。
这篇关于nginx报错socket() failed (24: Too many open files)【转】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-13用Nginx防范DDoS攻击的那些事儿
- 2024-12-13用Terraform在AWS上搭建简单NGINX服务器指南
- 2024-10-29Nginx发布学习:从入门到实践的简单教程
- 2024-10-28Nginx发布:新手入门教程
- 2024-10-21nginx 怎么设置文件上传最大20M限制-icode9专业技术文章分享
- 2024-10-17关闭 nginx的命令是什么?-icode9专业技术文章分享
- 2024-09-17Nginx实用篇:实现负载均衡、限流与动静分离
- 2024-08-21宝塔nginx新增8022端口方法步骤-icode9专业技术文章分享
- 2024-08-21nginx配置,让ws升级为wss访问的方法步骤-icode9专业技术文章分享
- 2024-08-15nginx ws代理配置方法步骤-icode9专业技术文章分享