1

nginx をリバース プロキシとして使用して、websocket 接続を Tornado にフィードする際に問題が発生しています。Websocket 接続は nginx がなくても正常に機能し (Tornado に直接フィード)、nginx の最新バージョンは Websockets をサポートするはずなので、構成ファイルに間違いがあるはずです... エラー (最新の出血エッジ Chrome ベータ版から)は:

Error during WebSocket handshake: 'Connection' header value is not 'Upgrade'

私のnginx.confファイルからの関連ビットは次のとおりです。

location / {
    proxy_pass_header Server;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Scheme $scheme;
    proxy_pass http://tornadoes;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}
4

1 に答える 1

1

どうやら、Ubuntu で nginx を強制的にアップグレードする必要があるようです。

sudo apt-get install python-software-properties
sudo apt-get install software-properties-common

sudo add-apt-repository ppa:nginx/stable
sudo apt-get update
sudo apt-get upgrade nginx

service nginx status
于 2013-07-12T19:23:20.920 に答える