Meteor,WebSocket,Nginx 502错误

Meteor,WebSocket,Nginx 502错误,meteor,nginx,websocket,Meteor,Nginx,Websocket,我们正试图在Nginx背后的Debian服务器上运行Meteor应用程序。应用程序正在运行,但在http://url/sockjs?info?cb=[随机字符串]返回502坏网关 Nginx配置设置如下: # this section is needed to proxy web-socket connections map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstrea

我们正试图在Nginx背后的Debian服务器上运行Meteor应用程序。应用程序正在运行,但在
http://url/sockjs?info?cb=[随机字符串]
返回
502坏网关

Nginx配置设置如下:

# this section is needed to proxy web-socket connections
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

upstream app_server {
    server 127.0.0.1:3000; # for a web port socket (we'll use this first)
    # server unix:/var/run/app/app.sock;
}

server {
    listen       80;
    server_name  app_server.com;

    charset utf-8;
    client_max_body_size 75M;

    access_log  /var/log/nginx/app.access.log;
    error_log  /var/log/nginx/app.error.log;

    location / {
        proxy_pass http://app_server;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header X-Forwarded-For $remote_addr; # preserve client IP
        proxy_read_timeout 60s;
        keepalive_timeout 65;
        proxy_redirect off;
        # the root path (/) MUST NOT be cached
        if ($uri != '/') {
            expires 30d;
        }
    }
}
我们尝试了各种配置,但无法找出故障所在。当时的解决方案也不起作用

编辑:尝试了在中找到的以下配置,但仍返回502


编辑:应用程序在不从Meteor CFS获取图像时工作正常,Meteor CFS用于通过管理仪表板存储上传的图像。加载图像时,发送到域/sockjs/img_位置/cb/xhr_的帖子会导致502错误。

您确定问题确实来自NGINX和websocket吗

  • 首先,您可以尝试使用websocket CLI来确保websocket是否正常工作
  • 您还可以尝试在控制台中运行应用程序,或查看日志(最大级别的调试/详细),以查看是否存在潜在错误

根据您的问题编辑,CFS使用HTTP传输作为底层数据传输层

不幸的是,根据将CFS放入堆栈的方式,最终可能会得到其依赖项的旧版本和有缺陷的版本,即
CFS:http methods
,它有时试图结束一个已经结束的响应,然后将其自身转换为一条神秘的错误消息

幸运的是,该错误已在0.0.30版之后得到解决,为了确保Meteor将该版本作为最小依赖项加载,您只需编辑您的
.Meteor/packages
文件并添加以下内容:

cfs:http-methods@0.0.30

这将确保任何等于或大于0.0.30的版本都是Atmosphere(meteor的软件包服务器)上的最新版本。

也许可以尝试更改代理传递以指向meteor实例并删除上游应用程序服务器?除非您需要负载平衡,否则我想…代理服务器通过;还可以查看此资源:@Sparticus以前尝试过该配置,结果相同。我注意到您正在使用
proxy\u set\u header Connection$Connection\u升级。。。您是否尝试了
proxy\u set\u头连接$http\u连接相反?@Myst是的,尝试过,但仍然得到相同的错误。已使用其他输入编辑问题以进行调查。您使用的构建包是什么?好的,WebSocket工作正常,但经过一些调试后,我收到以下消息:您似乎在cfs中遇到了错误。我发现了这个,如果你看一下Aldeed最后的评论,他建议安装一个名为cfs:http的包-methods@0.0.30Okay. 这解决了问题。谢谢你的帮助。请更新您的答案,我将接受。绝对是头发撕裂!