nginx 502 错误

租了个阿里云,把博客搬了过去,采用的是lnmp架构。
搭好之后。网站偶尔出现 502 错误。
重启 php-fpm 之后好一段时间。之后又出现了NGINX 502 错误。
经过一番折腾总算找到原因。这里记录一下。

最终定位是php-fpm 是消耗的内存超出了系统内存
下面修改php-fpm的配置解决了nginx 502 的问题

;小内存,使用动态启用进程
pm = dynamic
;动态方式下最小进程数
pm.min_spare_servers = 5
;动态方式下最大进程数
pm.max_spare_servers = 15

设置完成重启php-fpm
说明:
在我经常报502之前 我的 pm.max_spare_servers 的值是 35;

我们运行的PHP程序在执行完成后,或多或少会有内存泄露的问题。

开始的时候一个php-fpm进程只占用3M左右内存,运行一段时间后就会上升到20-30M的原因了。

所以,动态方式因为会结束掉多余的进程,可以回收释放一些内存,所以推荐在内存较少的服务器或者VPS上使用。具体最大数量根据 内存/20M 得到。

比如说512M的VPS,建议pm.max_spare_servers设置为20。至于pm.min_spare_servers,则建议根据服务器的负载情况来设置,比较合适的值在5~10之间。

Comments are closed.