Я использую 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;
}
Любая помощь будет принята с благодарностью. Я попробовал исправить, предложенный в этом вопросе , но это тоже не сработало.