2013-05-14 168 views
2

我想在nginx下运行我的应用程序(使用socket.io),并且在服务器端出现WebSocket connection to 'ws://...' failed: Unexpected response code: 502错误。 我已经读过nginx支持自v.1.3以来的websockets,所以我只需要升级到nginx v1.4.1 (stable)“响应代码:502”使用socket.io和nginx 1.4.x(稳定)与proxy_pass

这里是我的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; 
     } 
} 

UPDATE:

,我不得不说,我可以达到应用程序(所以我做侦听的端口3000)和socket.io工作,除非这个错误,但在某些情况下,emit调用不会发送任何参数,所以我得到undefined

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

+0

你的问题太含糊。您是否在关于请求的访问日志或错误日志中获取任何内容? – 2013-05-14 16:54:43

+0

你的应用在3000端口上监听吗?获得502使我觉得它没有运行。 – Bart 2013-05-14 17:29:20

+0

@SébastienRenauld感谢您的回复,我试图咨询我的访问/错误日志文件,但我的网站文件夹是空的。然而,语法看起来不错... – Ludo 2013-05-14 17:30:42

回答

-1

我找到了能够避免这个错误:

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

所以socket.io现在所做的AJAX调用,它的工作,但肯定的方式要慢得多,所以如果有人有真正的关键对于这个问题我仍然很感兴趣!