我在使用 nginx 作为反向代理向 Tornado 提供 websocket 连接时遇到问题。websocket 连接在没有 nginx 的情况下工作正常(直接馈送到 Tornado),并且最新版本的 nginx 应该支持 websockets,所以我的配置文件中一定有错误......错误(来自最新的前沿 Chrome beta)是:
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";
}