解决|解决 Nginx 500 Interval Server Error
背景
最近在使用 Nginx 的过程中,访问网站的时候时常出现 500 Interval Server Error?。查看日志,发现错误原因是 Too many open files。
问题分析
在网上根据 500 Interval Server Error 解决方案,没有明确的解决方案。又根据 Too many open files 咨询阿兰,答复说应该是打开的 Linux 的文件句柄数达到上限了,因为 Nginx 把网络连接都映射成了文件。那解决问题的关键就在于修改 Linux 的文件打开数上限了。
解决方案
无效的解决方案
通过搜索,可以根据以下指令来查看系统文件限制。
ulimit -Hn
ulimit -Sn
临时可以使用以下命令提高上限。
ulimit -n 655350
但据说这种方式退出 Shell 以后会失效,因为当前还暂时涉及不到重启的问题,需要的时候再继续探讨解决。我原本以后退出 Shell 的意思是重启,原来就是退出控制台或者说是本次会话,所以这么修改实在没什么意义。而且最重要的是这种解决方案不好使。
有效的解决方案 看了歪果仁这篇文章以后才知道到底怎么解决。
看了很多解决这个问题的文章,都是把打开文件数提到 10000 或者 30000。我的服务器的打开上限已经是 65535 了,比他们调整后的都高。因此可能问题不是出现在这里。
根据这篇文章,我重点查了一下 Nginx 这个进程所允许的打开文件数量。
cat /proc/【解决|解决 Nginx 500 Interval Server Error】/limits
发现文件打开限制只有 1024,可能是这个地方是瓶颈。于是又在 Nginx 的配置文件中,单独加上了一行,用以设置该进程单独的上限。
worker_rlimit_nofile 10240;
目前为止,问题没有再出现。
推荐阅读
- 5.Java中单例模式
- Mybatis的使用(4)
- 汽车|宁德时代换将,能否解决毛利率焦虑?
- 面试|3天精通nginx第二天-负载均衡upstream配置
- 关于el-scrollbar滚动条初始化不显示的问题及解决
- 如何解决 Spring Cloud 下测试环境路由问题
- 拍摄500人的大集体照,凭什么报这个价
- 科股早知道|钛媒体科股早知道:锂电池的终极发展方向,国内最大固态电池生产基地投产;“电子产品之母”需求量显著提升,单车价值量或从500元增长至
- 如何解决出现|如何解决出现 unable to resolve host 问题
- 面试突击70(什么是粘包和半包(怎么解决?))