继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

php-fpm 502 bad gateway错误处理

阿波罗的战车
关注TA
已关注
手记 95
粉丝 19
获赞 86

 最近一个月经常有客服打电话抱怨页面出现502错误 起初以为是运行游戏程序问题(因为重启php-fpm进程没有用,只有重启游戏才能恢复),后来情况严重了:连论坛都出现了502错误,为了不等领导请喝茶,赶紧查了nginx日志,查出过去几天有各种错误 111: Connection refused  104: Connection reset by peer


1[error] 31329#0: *1027762 connect() failed (111: Connection refused) while connecting to upstream ....upstream:"fastcgi://127.0.0.1:9000",......

大致是php超时设置的太小,nginx fastcgi 缓存设置过小

后来查看了nginx 配置,fastcgi_buffers和连接超时这些都是缺省配置php-fpm.conf超时也设置了30s,感觉被php开发和原来的运维坑到了,果断狠心把这些东西都做了修改大致如下 :

在nginx.conf http段加


1

2

3

4

5

6

7

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 64k;

fastcgi_buffers 4 64k;

fastcgi_busy_buffers_size 128k;

fastcgi_temp_file_write_size 128k;


在php-fpm.conf里把request_terminate_timeout = 300

这里关于php—fpm超时设置的略大,还是根据实际情况设置吧


说明:

   fastcgi_connect_timeout 指定连接到后端FastCGI的超时时间

   fastcgi_send_timeout 指定向FastCGI传送请求的超时时间

   fastcgi_read_timeout 指定接收FastCGI应答的超时时间

   fastcgi_buffers 4 64k 设置了4个缓冲,每个缓冲64k,总大小(4+1)*64k。默认是和系统的页大小一致4k或8k

   作用:如果一个PHP脚本所产生的页面大小为256KB,那么会为其分配4个64KB的缓冲区来缓存;如果页面大小大于256KB,那么大于256KB的部分会缓存到fastcgi_temp指定的文件路径中

   fastcgi_buffer_size 64k 是指FastCGI服务器对应头部的缓冲区大小,通常与fastcig_buffers的一个缓冲区大小一致

   fastcgi_busy_buffers_size的默认值是fastcgi_buffers的两倍

   fastcgi_temp_file_write_size表示在写入缓存文件时使用多大的数据块,默认值是fastcgi_buffers的两倍

   request_terminate_timeout php 执行时间超时,可以解决Connection reset by peer的问题

 重启php-fpm 重启nginx

我是26号22点左右的时候修改的,昨天没有问题,今天没有问题,查看日志也没有再出现上面的104 111的错误


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP