我用我的本地設置沒有nginx來服務我的node.js應用程序,我使用的是socket.io,性能非常好。socket.io使用nginx後響應慢
現在,我使用nginx的來代理我的請求,我看到socket.io有一個巨大的響應時間,這意味着我的網頁是越來越呈現速度快,但socket.io呈現的數據量級比以前慢。
我使用NGINX 1.1.16,這裏是通過conf,
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 2012-03-08 05:32:30
是的,這是有道理的。是的,你沒有通過web套接字獲取數據,但NGINX仍然試圖轉發數據包,即使它不理解它。它錯誤地將HTTP 1.1 web套接字請求轉換爲HTTP 1.0。到socket.io,這是打破。 – 2012-03-08 09:00:56
解決方法是配置NGINX而不是在應用層上工作,它應該在傳輸層上工作。詳細的說明在我的答案的鏈接。 – 2012-03-08 09:08:56