php-fpm 502 bad gateway错误处理的示例分析
更新:HHH   时间:2023-1-7


这篇文章主要为大家展示了“php-fpm 502 bad gateway错误处理的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“php-fpm 502 bad gateway错误处理的示例分析”这篇文章吧。

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

[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段加

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

以上是“php-fpm 502 bad gateway错误处理的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注天达云行业资讯频道!

返回web开发教程...