2013-03-09 85 views
1

我有一個龍捲風websocket服務器,可以在我的本地機器上正常工作。但是當我將它部署到Web服務器並使用supervisord運行時,我無法連接到javascript websockets。 我試圖在防火牆中打開端口,但不起作用。 我也嘗試過使用nginx的代理(和TCP模塊)沒有代理的龍捲風WebSocket服務器

tcp { 
    upstream websockets { 
     server abc.de.efg.hij:23581; 
     check interval=3000 rise=2 fall=5 timeout=1000; 
    } 

    server { 
     listen abc.de.efg.hij:45645; 
     server_name _; 

     tcp_nodelay on; 
     proxy_pass websockets; 
    } 
} 

也是行不通的。 這裏有什麼錯?

+0

嘗試使用'haproxy'。 – 2013-03-10 14:48:22

+0

您現在可以使用Nginx作爲websockets的反向代理。請參閱[代理 - websockets-with-nginx](https://chrislea.com/2013/02/23/proxying-websockets-with-nginx/)瞭解操作方法。 – xzvkm 2013-03-17 17:54:21

回答

0

您需要添加一個額外的「位置」一節WebSocket的,以確保升級頭被正確傳遞:

location /YOUR_SOCKET_ENDPOINT/ { 
    proxy_pass http://backend; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 
} 

文檔是在這裏:http://nginx.org/en/docs/http/websocket.html