2013-03-09 114 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