阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

错误解决:Nginx php-fpm 502 bad gateways

23次阅读
没有评论

共计 1540 个字符,预计需要花费 4 分钟才能阅读完成。

环境:

Ubuntu 16.04.2

nginx version: nginx/1.10.3 (Ubuntu)

php-fpm version: php-fpm/5.6

php-fpm 错误日志
WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
Nginx 错误日志
eader from upstream, client: xxx.xxx.xxxx.xxx, server: xxx.domain.com, request: "GET /index.php/1/2/test.html HTTP/1.0", upstream: "fastcgi://unix:/run/php/php5.6-fpm.sock:", host: "xxx.domain.com", referrer: "http://xxx.domain.com./index.php/1/2/test.html?filter_limit=100"

从 Nginx 日志里面很容易看出来,是 php-fpm 出了问题,重启 php-fpm 后网站恢复正常。php-fpm 日志里面给出了详细的错误提示,子进程数已经达到设置的最大值。

解决方案
/etc/php/5.6/fpm/php-fpm.conf
/etc/php/5.6/fpm/pool.d/www.conf

定位至配置文件,查找 pm.max_children 项(5.6 版本在 www.conf 中)

...
pm = dynamic #对于专用服务器,pm 可以设置为 static。#如何控制子进程,选项有 staticdynamic。如果选择 static,则由 pm.max_children 指定固定的子进程数。如果选择 dynamic,则由下开 参数决定:pm.max_children #,子进程最大数
pm.start_servers #,启动时的进程数
pm.min_spare_servers #,保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程
pm.max_spare_servers #,保证空闲进程数最大值,如果空闲进程大于此值,此进行清理
...

pm:表示使用那种方式,有两个值可以选择,就是 static(静态)或者 dynamic(动态)。

在更老一些的版本中,dynamic 被称作 apache-like。这个要注意看配置文件的说明。

下面 4 个参数的意思分别为:

pm.max_children:静态方式下开启的 php-fpm 进程数量
pm.start_servers:动态方式下的起始 php-fpm 进程数量
pm.min_spare_servers:动态方式下的最小 php-fpm 进程数
pm.max_spare_servers:动态方式下的最大 php-fpm 进程数量
区别

如果 dm 设置为 static,那么其实只有 pm.max_children 这个参数生效。系统会开启设置数量的 php-fpm 进程。

如果 dm 设置为 dynamic,那么 pm.max_children 参数失效,后面 3 个参数生效。

系统会在 php-fpm 运行开始 的时候启动 pm.start_servers 个 php-fpm 进程,然后根据系统的需求动态在 pm.min_spare_servers 和 pm.max_spare_servers 之间调整 php-fpm 进程数

关于数量的计算方法可以通过 memory_get_peak_usage(true) 这个函数获得内存峰值,以此作为单个请求的程序内存消耗消耗量,并考虑进 php-fpm 本身的基础内存消耗,可以得到一个近似的单进程内存消耗量。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2025-02-07发表,共计1540字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中