502状态码_K8S灰度环境频繁出现502

  • Post author:
  • Post category:其他


公司一个需求版本开发、测试结束,升级到灰度环境之后频繁出现502

公司使用的是php + nginx 所以分析也是按照这个方向来分析的。


nginx报错:

NGINX ERROR 10.9.95.75 !!!

2020/07/21 17:05:12 [error] 7#7: *38808 recv() failed (104: Connection reset by peer) while reading response header from upstream

这里的意思是,nginx已经和php-cgi(就是php-fpm进程)连接成功,并且发送了消息, 但是php-cgi进程由于某些原因关闭了,发送了一个reset包通知nginx进程。

状态码解释

  • 504 nginx超过了自己设置的超时时间,不等php-fpm返回结果,就结束了
  • 502 是php-cgi执行了, 但是没有读取到数据就超时了。php-fpm超时 php-fpm主进程会认为这个 php-fpm进程有问题会重启。

如果是程序性能问题导致的,php-fpm进程将会不停的kill && fork,此操作很消耗系统资源, 而且会给nginx进程带来影响,所以nginx会频繁的给客户端返回 502, 再之后, 如果nginx的连接数被占满了,客户端将会收到 504错误码。


Connection reset by peer

表示当前服务器接收到了服务器对端发送过来的TCP RST信号。也就是对端已经关闭了连接