Назад | Перейти на главную страницу

400 Bad Request при создании веб-сокета между клиентом и nodejs с Nginx в качестве обратного прокси

Я пытаюсь создать веб-сокет, используя Nginx в качестве обратного прокси и nodejs сзади. Я использую библиотеку ws в nodejs. Когда я тестирую его с помощью инструмента wscat, все работает нормально, но когда я делаю запрос из браузера, я постоянно получаю ответ 400: Bad Request от Nginx. Я не могу найти ничего в Интернете с ошибкой, nginx и nodejs вместе (может быть, у меня плохо). Я сделал именно так, как указано в руководство.

Ниже приведена моя конфигурация узла.

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

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;
        }
    }
}

Затем я попробовал работать с socket.io из этого руководство. Но тогда я не понимаю, как доставить файл index.html, содержащий

var socket = io(); // your initialization code here.

в браузер, поскольку я хочу, чтобы только конкретный запрос сделал веб-сокет. Я даже не понимаю, как найти socket.io.js, поскольку я не нашел там, где упоминалось.

Пожалуйста помоги.