为了账号安全,请及时绑定邮箱和手机立即绑定

php-fpm 502 bad gateway错误处理

标签:
PHP

 最近一个月经常有客服打电话抱怨页面出现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的错误


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消