&引用;响应代码:502“;使用socket.io和nginx 1.4.x(稳定)和proxy_pass

&引用;响应代码:502“;使用socket.io和nginx 1.4.x(稳定)和proxy_pass,nginx,Nginx,我试图在nginx下运行我的应用程序(使用socket.io),但我获得了到“ws://…”的WebSocket连接失败:服务器端出现意外响应代码:502错误。 我读到nginx从v.1.3开始就支持websockets,所以我只需要升级到nginxv1.4.1(稳定) 这是我的配置文件: server { listen 80; server_name website.com; location / { proxy_pass

我试图在nginx下运行我的应用程序(使用socket.io),但我获得了到“ws://…”的
WebSocket连接失败:服务器端出现意外响应代码:502
错误。 我读到nginx从
v.1.3
开始就支持websockets,所以我只需要升级到nginx
v1.4.1(稳定)

这是我的配置文件:

server {
       listen 80;
       server_name website.com;

        location / {
          proxy_pass    http://127.0.0.1:3000;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "upgrade";
          access_log    /var/log/nginx/website/access.log;
          error_log    /var/log/nginx/website/error.log;
        }
}
更新:

我必须说,我可以访问应用程序(因此我确实侦听端口3000),并且socket.io正在工作,除非出现此错误,但在某些情况下,
emit
调用desn不会发送任何参数,因此我得到了
未定义的


我在这里遗漏了什么来避免此错误?

我找到了一些可以避免此错误的方法:

io.set('transports',['xhr-polling'])


因此socket.io现在可以进行AJAX调用,它可以完成任务,但速度肯定要慢得多,所以如果有人掌握了这个问题的真正关键,我仍然非常感兴趣

我发现了一些可以避免此错误的方法:

io.set('transports',['xhr-polling'])


因此socket.io现在可以进行AJAX调用,它可以完成任务,但速度肯定要慢得多,所以如果有人掌握了这个问题的真正关键,我仍然非常感兴趣

你的问题太模糊了。您是否在访问日志或错误日志中获得有关请求的任何信息?您的应用程序是否正在侦听端口3000?收到502让我觉得它没有运行。@sébastienRenauld感谢您的回复,我试图查阅我的访问/错误日志文件,但我的
网站
文件夹是空的。不过语法看起来不错…@Bart是的,我在同一个端口(v3.x)上使用socket.io和express,我可以访问应用程序,另外,socket.io也可以工作,但在某些情况下,我无法在我的
emit
calls上传输任何参数。我在将节点放置在Nginx下时也会遇到同样的问题。首先,一些请求在到达节点时未定义其参数。最后,当我尝试从外部访问我的节点应用程序时,在整个Nginx中遇到了502错误。如果我有任何解决方案或只是解决了问题,我会把它贴在这里。你的问题太模糊了。您是否在访问日志或错误日志中获得有关请求的任何信息?您的应用程序是否正在侦听端口3000?收到502让我觉得它没有运行。@sébastienRenauld感谢您的回复,我试图查阅我的访问/错误日志文件,但我的
网站
文件夹是空的。不过语法看起来不错…@Bart是的,我在同一个端口(v3.x)上使用socket.io和express,我可以访问应用程序,另外,socket.io也可以工作,但在某些情况下,我无法在我的
emit
calls上传输任何参数。我在将节点放置在Nginx下时也会遇到同样的问题。首先,一些请求在到达节点时未定义其参数。最后,当我尝试从外部访问我的节点应用程序时,在整个Nginx中遇到了502错误。如果我得到了任何解决方案或只是解决了问题,我会把它发布在这里。这个“修复”根本不使用web套接字。这个“修复”根本不使用web套接字。