星哥的博客

  • 首页
  • 系统
  • 虚拟机
  • 网站开发
  • 硬件外设
  • VPS/云主机
  • 心情随笔
  1. 首页
  2. 网站开发
  3. Nginx
  4. 正文

解决由于文件句柄打开数限制设置不当引起Nginx 502 Bad Gateway问题

2011年6月24日 4564点热度 2人点赞 0条评论

最近遇到一个奇怪的Nginx 502 Bad Gateway问题,经检查设置都很正常,但就是网站运行1-2天后自动502,头大了一圈,昨天无意间检查php-fpm的日志,发现了很多报错

Jun 23 07:44:10.440697 [NOTICE] fpm_children_make(), line 352: child 18460 (pool default) started

类似与这样的,查过网上的资源,认为是php线程打开文件句柄受限导致的错误。具体的解决的办法如下:

1、提升服务器的文件句柄打开打开

# vi /etc/security/limits.conf 末尾加上
* soft nofile 51200
* hard nofile 51200

2、提升nginx的进程文件打开数

nginx.conf  修改
worker_rlimit_nofile 51200;

events
{
use epoll;
worker_connections 51200;
}

3、修改php-fpm.conf文件,主要需要修改2处。

命令 ulimit -n 查看限制的打开文件数,php-fpm.conf 中的选项rlimit_files 确保和此数值一致。
<value name="max_requests">10240</value>
<value name="rlimit_files">51200</value>

4、指定可以分配的文件句柄的最大数目

# vi /etc/sysctl.conf 末尾添加
fs.file-max=51200

其中51200也可以改为其他数字,一般引用51200和65535,完成以上修改,重启PHP,再次检查php-fpm日志不再增加,502 Bad Gateway也消失了,OK搞定。

附ulimit修改方式:

使用ulimit -a 可以查看当前系统的所有限制值,使用ulimit -n 可以查看当前的最大打开文件数。

新装的linux默认只有1024,当作负载较大的服务器时,很容易遇到error: too many open files。因此,需要将其改大。

使用 ulimit -n 65535 可即时修改,但重启后就无效了。(注ulimit -SHn 65535 等效 ulimit -n 65535,-S指soft,-H指hard)

有如下三种修改方式:

1.在/etc/rc.local 中增加一行 ulimit -SHn 65535
2.在/etc/profile 中增加一行 ulimit -SHn 65535
3.在/etc/security/limits.conf最后增加如下两行记录
* soft nofile 65535
* hard nofile 65535

具体使用哪种,试试哪种有效吧,我在 CentOS中使用第1种方式无效果,使用第3种方式有效果,而在Debian中使用第2种有效果

标签: 暂无
最后更新:2011年7月2日

wangxingcs

这个人很懒,什么都没留下

点赞
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

This site uses Akismet to reduce spam. Learn how your comment data is processed.

wangxingcs

这个人很懒,什么都没留下

我的博客

仅记录一些有用的教程,自己的经历,已屏蔽各大搜索引擎收录。

新浪微博 @wangxingcs

Twitter @wangxingcs(常在)

最新 热点 随机
最新 热点 随机
Proxmox VE(PVE)6.X 添加硬盘 PVE解决VM is locked问题 Proxmox VE配置更新源 黑群晖显示真实CPU信息(支持7.0.1) Proxmox VE直通硬盘(全盘映射方式) PVE去除“没有有效订阅”提示
iptables配置详解 android-apktool 中文使用说明 PHP安装scws分词扩展模块 Windows 2008 R2 Hyper-v 安装Centos6.3和LinuxIC v3.4 目前兼容性最好的CSS3圆角写法 解决由fastcgi通讯模式引起的502 Bad Gateway问题
标签聚合
群晖 驱动 DSM 虚拟机 FineCMS PVE MTP CMS

COPYRIGHT © 2015-2023 wangxingcs.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

陕ICP备13007295号