Я использовал свою локальную настройку без nginx для обслуживания моего приложения node.js, я использовал socket.io, и производительность была неплохой.socket.io медленный ответ после использования nginx
Теперь я использую Nginx проксировать мою просьбу, и я вижу, что socket.io имеет огромное время отклика, что означает моя страница становится оказана быстро, но данные, предоставляемые Socket.io является порядок медленнее, чем раньше.
Я использую NGINX 1.1.16 и вот конф,
gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
access_log logs/host.access.log main;
location/{
proxy_pass http://localhost:9999;
root html;
index index.html index.htm;
}
Несмотря на то, что все работает, у меня есть 2 вопроса,
socket.io реакция медленнее, чем раньше , С NGINX, ответ время составляет около 12-15 секунд и без, это почти 300 мс. попробовал это с помощью теста apache.
Я вижу это сообщение в консоли, которая не была там перед использованием NGINX,
[2012-03-08 09:50:58.889] [INFO] console - warn - 'websocket connection invalid'
Сообщение от Node.js приложения (не из NGINX) .. Так что вы хотите сказать, что я не получаю данные через WebSocket, а через какой-либо другой транспортный механизм ? как я могу это проверить? – user644745
Да, это имеет смысл. Да, вы не получаете данные через веб-сокет, но NGINX по-прежнему пытается перенаправить пакет, даже если он его не понимает. Он неправильно преобразует HTTP-запрос HTTP-HTTP в HTTP 1.0. В socket.io это сломано. –
Обходной путь заключается в настройке NGINX вместо работы на прикладном уровне, он должен работать на транспортном уровне. Подробные инструкции приведены в ссылках моего ответа. –