如何设置我的nginx配置文件以允许通过Tornado进行websocket连接?

时间:2013-07-12 16:24:22

标签: nginx websocket tornado

我遇到了使用nginx作为反向代理来向Tornado提供websocket连接的问题。 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";
}

1 个答案:

答案 0 :(得分: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