Node.js Nginx-WebSocket握手期间出错:意外响应代码:502
我正在使用pm2在我的数字海洋水滴上运行websocket服务器。另外,我正在使用websocket库 它正在监听端口3030。 使用命令netstat-l-p,我可以看到它确实在监听 下面是my nginx sites enabled配置文件上的设置。我正在运行Node.js Nginx-WebSocket握手期间出错:意外响应代码:502,node.js,nginx,websocket,server,Node.js,Nginx,Websocket,Server,我正在使用pm2在我的数字海洋水滴上运行websocket服务器。另外,我正在使用websocket库 它正在监听端口3030。 使用命令netstat-l-p,我可以看到它确实在监听 下面是my nginx sites enabled配置文件上的设置。我正在运行/url中的静态文件,并运行/socketurl。并且,出于安全原因修改了/path/to/blah 31 server { 30 . . . listen 80; 29 . . . listen [::]:80;
/
url中的静态文件,并运行/socket
url。并且,出于安全原因修改了/path/to/blah
31 server {
30 . . . listen 80;
29 . . . listen [::]:80;
28
27 . . . server_name xxxx.com www.xxxx.com;
26 . . . return 302 https://$server_name$request_uri;
25 }
24
23 server {
22 . . . # SSL configuration
21
20 . . . listen 443 ssl http2 default_server;
19 . . . listen [::]:443 ssl http2 default_server;
18 . . . server_name xxxx.com www.xxxx.com;
17
16 . . . ssl_certificate /path/to/cert;
15 . . . ssl_certificate_key /path/to/key;
14
13 . . . location / {
12 . . . . . .proxy_pass http://127.0.0.1:5000;
11 . . . }
10
9 . . . location /socket {
8 . . . . . . proxy_set_header X-Forwarded-For $remote_addr;
7 . . . . . . proxy_set_header Host $http_host;
6 . . . . . . proxy_pass http://127.0.0.1:3030;
5 . . . . . . proxy_http_version 1.1;
4 . . . . . . proxy_set_header Upgrade $http_upgrade;
3 . . . . . . proxy_set_header Connection 'upgrade';
2 . . . . }
1 }
使用wss://www.xxxx.com/socket
。我得到这个错误:
WebSocket握手期间出错:意外响应代码:502
查看位于/var/log/Nginx
的Nginx日志文件。这就是我看到的错误
[错误]31009#31009:*19上游过早关闭连接
正在从上游读取响应头,客户端:X.X.XX.XXX,服务器:
xxxxx.com,请求:“GET/socket HTTP/1.1”,上游:
“”主机:“www.xxxxx.com”
检查此腹板箱的收割台时。这就是我得到的。
静态资源可以很好地渲染,但websocket服务器不能。
这告诉我至少wss://www.xxxx.com 可以通过/socket联系我的Nginx服务器,但似乎响应不正确。当我查看pm2日志和错误文件时,我发现它没有输出任何内容。当我用localhost测试它时,它工作得很好。但是,当部署到服务器时,它会中断 我找到了解决问题的办法 我发现,如果出现这样的问题,通常是与上游相关的问题,在我的例子中,上游是在端口3030上运行的应用程序。事实证明,我的websocket并没有达到我预期的效果
如果其他人也遇到了这个问题。我建议您使用一个非常简单的websocket,您肯定知道它是有效的,然后看看它在Nginx上是否有效 我忘记启动服务器时出现了这个错误。因此,请确保服务器正在运行:)太棒了!布里尔!我想你可以帮我解决这个问题:我也面临着同样的问题。你能发布一些更具体的关于你如何解决这个问题的文章吗?