为什么wss链接的时候,有时候会出现以下问题,请求如何解决

gouwenyu

2022/06/16 00:31:12 [error] 8582#0: *21606 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 119.32.47.248, server: gyqj.njqjzy.ink, request: "GET /wss HTTP/1.1", upstream: "http://127.0.0.1:2348/wss", host: "gyqj.njqjzy.ink"
截图
截图
截图
截图
截图

879 2 1
2个回答

Tinywan

代理不通

  • gouwenyu 2022-06-16

    但是我是按照wokerman的官方手册去配置的,有时候能连上,有时候又不能连上
    location /wss
    {
    proxy_pass http://127.0.0.1:2348/wss;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header X-Real-IP $remote_addr;
    }

walkor

连不上的时候运行 php start.php status 截图,截图截完整

  • gouwenyu 2022-06-16

    以上图片就行

  • walkor 2022-06-16

    执行top命令,然后截图上半部分

  • gouwenyu 2022-06-16

    好了

  • walkor 2022-06-16

    ps auxf 找到关键字pid为6428 部分,截个大图把6248这个进程相关信息截图出来,包括进程间关系

  • gouwenyu 2022-06-16

    好了

  • walkor 2022-06-16

    6248这个进程把cpu打满了,如果nginx代理连到这个有问题的进程可能就超时了。6248这个进程的父进程可能被你kill掉了。停止workerman的使用尽量用stop命令,不然你可能kill不干净。
    执行 kill -9 6248 把有问题的进程kill掉就好了。

  • gouwenyu 2022-06-16

    好的,我试试

  • gouwenyu 2022-06-16

    这个cpu被打满的根本原因就是没有杀的干净吗?

  • walkor 2022-06-16

    应该不是,如果你想知道为啥 可以执行 strace -ttp 6428 看进程在干什么

  • gouwenyu 2022-06-16

    我按照你说的把wokerman先stop了之后再去kill的时候 直接说没有该进程了

  • walkor 2022-06-16

    6428 不是 6248

  • gouwenyu 2022-06-16

    哈哈,我看你给我打的6248

  • gouwenyu 2022-06-16

    稍等

  • gouwenyu 2022-06-16

    非常感谢您,解决了

  • gouwenyu 2022-06-16

    再麻烦您一下,就是说6428这个进程有可能是我之前没有打干净,然后成了一个带垃圾的问题进程,然后在每次去请求这个代理的时候,就会直接转发到这个进程上,从而把这个进程的cpu打满是吧

  • walkor 2022-06-16

    代理去请求这个有问题进程的时候可能会超时。cpu打满可能是这个进程本身有问题,不一定是连接转发过来导致的

  • gouwenyu 2022-06-17

    好的 了解

  • gouwenyu 2022-06-18

    好的 谢谢

年代过于久远,无法发表回答
🔝