«Недопустимое соединение с веб-сокетом» при использовании nginx на сервере node.js

Я использую Express.js для создания сервера, к которому я могу подключаться с помощью веб-сокетов. .

Несмотря на то, что в конечном итоге это работает (то есть подключается и передает событие клиенту), я сначала получаю сообщение об ошибке в консоли Chrome:

Неожиданный код ответа: 502

На сервере сокет .io только журналы предупреждение - недействительное соединение через веб-сокет .

Однако nginx регистрирует это:

2012/02/12 23:30:03 [ошибка] 25061 # 0: * 81 восходящий поток преждевременно закрыт соединение при чтении заголовка ответа из восходящего потока, клиент: 71.122.117.15, сервер: www.example.com, запрос: «GET /socket.io/1/websocket/1378920683898138448 HTTP / 1.1», восходящий поток: " http://127.0.0.1:8090/socket.io/1/websocket/1378920683898138448 ", host: "www.example.com"

Примечание. У меня запущен nginx dev: Версия nginx: nginx / 1.1.14 , поэтому он должен поддерживать HTTP / 1.1.

Также обратите внимание, что если я просто использую сервер node.js без nginx, он работает без каких-либо предупреждений.

Наконец, вот мой файл конфигурации nginx:

server {
        listen 0.0.0.0:80;
        server_name www.example.com;
        access_log /var/log/nginx/example.com.log;

        location / {
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header Host $http_host;
          proxy_set_header X-NginX-Proxy true;

          proxy_pass http://node;
          proxy_redirect off;
        }
}

upstream node {
        server 127.0.0.1:8090;
}

Любая помощь будет принята с благодарностью. Я попробовал исправить, предложенный в этом вопросе , но это тоже не сработало.

6
задан Community 23 May 2017 в 09:59
поделиться