如何修复此NGINX 502坏网关错误?

如何修复此NGINX 502坏网关错误?,nginx,websocket,http-status-code-502,Nginx,Websocket,Http Status Code 502,我正在angular应用程序中开发web套接字。我让它通过nginx连接到python后端。我发现大约90%的时候我会收到502个“坏网关”错误。我会这样做: 在浏览器中加载页面并连接web套接字 Python后端将数据发送到前端 断开web套接字 尝试重新连接web套接字与OP遇到的问题不一样,但只是为了防止任何人遇到此问题,并且具有与我相同的设置: 我在SSL上使用WebSockets(所以wss://协议),并且弹出了502,尽管配置以前已经工作过。配置如下所示: ... proxy_pa

我正在angular应用程序中开发web套接字。我让它通过nginx连接到python后端。我发现大约90%的时候我会收到502个“坏网关”错误。我会这样做:

  • 在浏览器中加载页面并连接web套接字
  • Python后端将数据发送到前端
  • 断开web套接字

  • 尝试重新连接web套接字与OP遇到的问题不一样,但只是为了防止任何人遇到此问题,并且具有与我相同的设置:

    我在SSL上使用WebSockets(所以
    wss://
    协议),并且弹出了502,尽管配置以前已经工作过。配置如下所示:

    ...
    proxy_pass http://127.0.0.1:8080;
    ...
    
    在后端,我使用带有
    ws
    包的节点来创建websocket服务器

    正如我所说:它以前工作过,但突然停止了工作。此外,nginx在从上游读取响应头时将
    上游提前关闭的连接写入错误日志。我认为nginx或node解决了某种安全问题,导致设置不再工作

    为了让它工作,我必须做的是在
    proxy\u pass
    config中使用https而不是http

    ...
    proxy_pass https://127.0.0.1:8080;
    ...
    

    Python服务的堆栈是什么?无论是Python方面的框架还是运行它的应用服务器,都是CentOS Linux上的Python 3.6。我只导入标准websockets库。我实际上是手动运行该命令,尽管我通常将其作为守护进程运行。这就是你的意思吗?Python标准库中没有提供WebSocket的模块。您必须在此处提供一些(最好是最低限度的)代码。@AKX我在requirements.txt文件
    websockets==8.0.1
    中有这一行,我将包括我的nginx代码作为我的问题的编辑,哪个应用服务器正在运行您的应用程序?(正在侦听端口8765的进程)我遇到了完全相同的问题,并尝试了您的解决方案。在这个过程中,我注意到另一个错误,它导致容器相对频繁地重新启动。在解决了另一个问题后,为了好玩,我从HTTPS切换回HTTP。你瞧,问题已经解决了。
    ...
    proxy_pass https://127.0.0.1:8080;
    ...