2013-05-14 97 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調用,它的工作,但肯定的方式要慢得多,所以如果有人有真正的關鍵對於這個問題我仍然很感興趣!