我正在使用角度应用程序中的Web套接字。我通过nginx将其连接到python后端。我发现大约90%的时间出现502个“错误的网关”错误。我将这样做:
我不知道为什么会这样。我不知道为什么会出现502错误。我也无法弄清楚为什么进行硬重装可以解决此问题。我尝试过的事情:
我该找些什么来帮助我解决这个问题?
编辑:这是我的nginx conf.d文件:
server {
listen 80;
index index.html;
root /var/www/mysite;
location / {
access_log /var/log/nginx/mysite/ui.access.log;
error_log /var/log/nginx/mysite/ui.error.log;
try_files $uri $uri/ /index.html;
}
location /ws/ {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Host $proxy_host;
proxy_pass http://WEBSOCKET/;
access_log /var/log/nginx/mysite/ws_services.access.log;
error_log /var/log/nginx/mysite/ws_services.error.log;
proxy_read_timeout 300s;
}
}
upstream WEBSOCKET {
ip_hash;
server 127.0.0.1:8765;
}
答案 0 :(得分:0)
OP所遇到的问题不一样,但以防万一有人碰到这个问题,并且设置与我相同:
我正在使用SSL上的WebSockets(因此使用wss://
协议),并且弹出了502,即使该配置以前曾起作用过。配置如下:
...
proxy_pass http://127.0.0.1:8080;
...
在后端,我使用带有ws
软件包的Node来创建websocket服务器
正如我所说:它曾经工作过,但是突然停止了工作。另外,nginx将upstream prematurely closed connection while reading response header from upstream
个错误写入错误日志。我想nginx或node都关闭了某种安全性问题,导致设置不再起作用。
为了使其能够正常工作,我要做的是在proxy_pass
配置中使用https而不是http
...
proxy_pass https://127.0.0.1:8080;
...