Я пытаюсь обслуживать статические файлы с помощью nginx 1.6 и для прокси-сокета, идущего с веб-сервера Node.js с socket.io.Socket.io с nginx
Это соответствующая часть nginx.conf:
location /socket.io/ {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
}
Он отлично работает непосредственно между браузером и Node.js, но socket.io занимает слишком много времени, когда проксированный с Nginx 1.6. Протокол квитирования занимает слишком много времени, но если его оставить без перерыва, он начинает работать через пару минут.
Доставка статических файлов от nginx отлично работает.
В чем может быть проблема?
UPDATE:
Я проанализировал немного сетевой трафик и определил, что следующий запрос длится около минуты (это точно, когда обновление запрашивается):
Sec-WebSocket-Key: LhZ1frRdl+myuwyR/T03lQ==
Cookie: io=1-A7tpvwmoGbrSvTAAA5
Connection: keep-alive, Upgrade
Upgrade: websocket
....
Ожидаемый ответ код 101 и:
Connection: upgrade
Sec-WebSocket-Accept: HXx3KKJadQYjDa11lpK5y1nENMM=
Upgrade: websocket
...
вместо этого, уш owser получает и:
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: http://localhost:8888
Connection: keep-alive
Content-Type: application/json
Server: nginx/1.6.2
Transfer-Encoding: chunked
UPDATE 2:
Я определил, что та же самая конфигурация прекрасно работает на моем офисном компьютере, а это означает, что это мой домашний компьютер проблема. Во всяком случае, было бы очень приятно определить, что именно происходит неправильно.
Есть ли разница в системе Конфи домашней и офисной системы? – tharif