“response code:502”使用socket.io和nginx 1.4.x(稳定版)和proxy_pass

时间:2013-05-14 15:27:58

标签: nginx

我正在尝试在nginx下运行我的应用程序(使用socket.io),并且在服务器端出现WebSocket connection to 'ws://...' failed: Unexpected response code: 502错误。 我已经读过nginx支持自v.1.3以来的websockets所以我只是升级到了nginx v1.4.1 (stable)

这是我的conf:

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调用不会发送任何参数所以我得到undefined

我在这里错过了什么来避免这个错误?

1 个答案:

答案 0 :(得分:-1)

我找到了一些可以避免此错误的内容:

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

所以socket.io现在可以进行AJAX调用,它可以完成这项工作,但肯定会慢得多,所以如果有人对这个问题有真正的关键,我仍然非常感兴趣!