file watchers怎么默认打开_NGINX 500 错误--调整文件打开句柄大小

概述

NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。

2064d435d6d9cb19dd01c3dcd5664fec.png

在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。

但很多人用 Nginx 的时候都会出现 500 错误,其中很大一部分原因是 因为文件打开句柄太小有关。


在linux 下 使用这个命令增加进程打开的文件句柄。

ulimit -SHn 51200

默认只用1000 当链接数小的时候看不出来,使用这种处理方法可以有效防止500错误出现。

访问网站的时候,偶尔会遇上500 Internal Server Error的错误提示页面.

40bf200e2dcad6e9c0673c4fd4001913.png

处理过程

1、查了相关资料认为是访问过大,系统内核进程受限才出现的.

答案如下:

$ ulimit -n11095 

程序限制只能打开11095个文件,ulimit命令是设置当前用户一个进程可拥有的文件描述符的数量.。估计是模拟的并发数太多了,需要调整一下nginx.conf的并发设置数:

vi /etc/nginx/nginx.confevents {worker_connections 1024;} 

调整为:

events {worker_connections 10240;} 

2、 调整文件系统最大可打开文件数

还是会出现上面问题,使用

# cat /proc/sys/fs/file-max8192 

文件系统最大可打开文件数

# ulimit -n1024 

程序限制只能打开1024个文件 或者永久调整打开文件数

在启动文件/etc/rc.d/rc.local末尾添加(在/etc/sysctl.conf末尾添加fs.file-max=8192)

 ulimit -n 8192 

3、最终解决方案

方法1 (永久调整)

vi /etc/security/limits.conf

在文件末加上:

* soft nofile 8192* hard nofile 20480

同时vi /etc/sysctl.conf末尾添加

fs.file-max=8192

重新启动,在使用ulimit -n查看的数已经是8192

方法2 (临时用)

直接在终端输入 ulimit -n 8192 按回车就ok了

f0ea42e2d28cb6fd2c32c26b5f02c93e.png

后面小编会分享更多Linux方面的干货,感兴趣的朋友走一波关注哩~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值