nginx反向代理webman偶尔会出现104: Connection reset by peer

learner

问题描述

nginx反向代理webman偶尔会出现

出现的很有规律。猜测跟monitor关闭内存超出的子进程有关。怎么解决。不应该先取消处理,再关闭进程吗?

程序代码

            if (preg_match('/VmRSS\s*?:\s*?(\d+?)\s*?kB/', $status, $match)) {
                $mem = $match[1];
            }
            $mem = (int) ($mem / 1024);
            if ($mem >= $memoryLimit) {
                posix_kill($pid, SIGINT);
            }

报错信息

recv() failed (104: Connection reset by peer) while reading response header from upstream,

截图报错信息里报错文件相关代码

截图

操作系统及workerman/webman等框架组件具体版本

webman v1.6.14 / workerman v5.0.0
linux php 安装 php8.3 event扩展

58 1 0
1个回答

Connection reset by peer 一般是进程退出导致,从提供的信息中看不出来是哪里导致的退出,可以先把monitor关闭试下。
进程收到重启信号会先处理业务,然后才关闭。但是有一些极端情况,例如业务执行慢,被强制推退出。进程当前没有处理请求,但是退出的时候刚好有请求发给当前进程。这些都会导致 Connection reset by peer

  • learner 1天前

    感谢。后面把内存限制提高,就没有了。之前设置太低触发关闭频率太高了。

×
🔝