2012-03-08 22 views
1

node.jsアプリケーションを提供するためにnginxなしでローカルセットアップを使用しましたが、socket.ioを使用していて、パフォーマンスはかなり良かったです。socket.io nginxを使用した後の応答が遅い

さて、私はプロキシに私の要求をnginxのを使用していますが、私はsocket.ioは私のページが速くレンダリング取得されることを意味し、巨大な応答時間を持っていますが、socket.ioによってレンダリングされたデータは、大きさの順であることがわかり以前よりも遅くなりました。

私はすべてが働いているにもかかわらず、私は2つの問題を持って、

  1. socket.io応答が以前より遅くなり、

    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; 
        } 
    

    をnginxの1.1.16を使用して、ここconfにあるのです。 NGINXの場合、応答時間は です。の時間は約12-15秒です。この をApacheのベンチマークで試しました。私は のnginxを使用する前に、ありませんでしたコンソールでこのメッセージが、

    [2012-03-08 09:50:58.889] [INFO] console - warn - 'websocket connection invalid' 
    

答えて

0

はnginxのかSocketIOからのコンソールメッセージますか?表示さ

  • NGINXプロキシはHTTP 1.1を話さないため、Webソケットが動作しない可能性があります。

    更新: それについてのブログ記事が見つかりました:http://www.letseehere.com/reverse-proxy-web-sockets

    提案された解決策: http://blog.mixu.net/2011/08/13/nginx-websockets-ssl-and-socket-io-deployment/

  • +0

    メッセージが...のNode.jsアプリケーション(ないnginxのから)からですだから、私はWebSocketを介してデータを取得しておりませんと言うことを意味しませんが、いくつかの他のトランスポート機構を介して?どうすれば確認できますか? – user644745

    +0

    そうです、意味があります。はい、Webソケット経由でデータを取得していませんが、NGINXは理解できない場合でもパケットを転送しようとしています.HTTP 1.1のWebソケット要求をHTTP 1.0に間違って変換します。 socket.ioには、これは壊れています。 –

    +0

    回避策は、アプリケーションレイヤーで作業するのではなく、NGINXを構成することです。トランスフォームレイヤー上で動作するはずです。詳細な指示は私の答えのリンクにあります。 –

    3

    あなたは追加することを試みることができる:

    proxy_buffering off; 
    

    は情報のためthe docsを参照してください、私はしましたいくつかのケースでは、バッファリングが応答時間を増加させるという様々なフォーラムでのチャットを見ました。

    +1

    この作品は私のために、私はwebpackホットミドルウェアを使用しています – hisland

    関連する問題