使用Nginx作为反向代理在客户端和nodejs之间创建websocket时出现400 Bad Request。

时间:2016-05-15 10:54:53

标签: node.js sockets nginx proxy socket.io

我正在尝试使用Nginx作为反向代理创建一个websocket,并在后面创建nodejs。我在nodejs中使用ws库。当我使用wscat工具测试它时一切正常但是当我从浏览器发出请求时,我不断收到来自Nginx的400:错误请求响应。我无法通过互联网找到任何错误,nginx和nodejs(可能是我的坏)。我完全按照tutorial中提到的那样做了。

以下是我的节点配置 -

console.log("Server started");
var Msg = '';
var WebSocketServer = require('ws').Server
    , wss = new WebSocketServer({port: 8010});
    wss.on('connection', function(ws) {
        ws.on('message', function(message) {
        console.log('Received from client: %s', message);
        ws.send('Server received from client: ' + message);
    });
 });

Nginx conf -

http {
    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }

    upstream websocket {
        server 127.0.0.1:8010;
    }

    server {
        listen 8020;
        location / {
            proxy_pass http://websocket;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
        }
    }
}

然后我尝试使用此tutorial中的socket.io。但后来我很困惑如何传递包含

的index.html文件
<script src="/socket.io/socket.io.js"></script>
<script>
     var socket = io(); // your initialization code here.
</script>

到浏览器,因为我只想要特定的请求make web socket。我甚至不明白如何找到socket.io.js,因为我找不到所提到的地方。

请帮忙。

0 个答案:

没有答案