3

私のサーバーは、https でルート URL を提供します。

  • ファイル、残りのリソース
  • ウェブソケット

構成で websocket をサポートしたいのですが、うまくいきません。

websocket プロキシをサポートする nginx 1.3.16 を使用しています。

これが私のnginx構成の一部です:

    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }

server {
    listen 443 default ssl;
    server_name localhost;

    ssl                        on;
    ssl_certificate        ssl/server.crt;
    ssl_certificate_key  ssl/server.key;

    ssl_protocols        SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers RC4:HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;
        keepalive_timeout    60;
    ssl_session_cache    shared:SSL:10m;
        ssl_session_timeout  10m;

    ### We want full access to SSL via backend ###
        location / {
        proxy_pass http://localhost:8080;       

            ### force timeouts if one of backend is died ##
                proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;

            ### Set headers ####
                    proxy_set_header        Accept-Encoding   "";
                proxy_set_header        Host            $host;
                proxy_set_header        X-Real-IP       $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

            ### Most PHP, Python, Rails, Java App can use this header ###
            #proxy_set_header X-Forwarded-Proto https;##
            #This is better##
                proxy_set_header        X-Forwarded-Proto $scheme;
            add_header              Front-End-Https   on;

        ### By default we don't want to redirect it ####
            proxy_redirect     off;
      }
    location /writever/chat {
        proxy_pass http://localhost:8080/writever/chat;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

nginxで表示されるエラーは次のとおりです。

2013/04/23 22:41:52 [error] 17011#0: *2093 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET /writever/chat?X-Atmosphere-tracking-id=0&X-Atmosphere-Framework=1.0.12&X-Atmosphere-Transport=websocket&X-Cache-Date=0&Content-Type=application/json&X-atmo-protocol=true HTTP/1.1", upstream: "http://127.0.0.1:8080/writever/chat?X-Atmosphere-tracking-id=0&X-Atmosphere-Framework=1.0.12&X-Atmosphere-Transport=websocket&X-Cache-Date=0&Content-Type=application/json&X-atmo-protocol=true", host: "localhost"

「/」には/writever/chatが含まれているため、順序が重要な場合、2つの場所が連携できるかどうかはわかりません.

どんな助けでも大歓迎です。


更新:以前の nginx バージョンが残っていました。クリーニング後、すべて正常に動作しているようです。したがって、問題またはより良いものが見つかるまで、この構成を保持します。お知らせいたします。

4

1 に答える 1