您的位置:首页 > 运维架构 > Linux

linux 部署django项目时出错: WebSocket connection,Unexpected response code: 200"

2017-08-04 12:04 549 查看
在这个项目中用到了dwebsocket,而部署是利用nginx和uwsgi,在Windows下是正常的,但一移植到linux下就报上面的错误,其实解决方法很简单:

nginx配置:

location /{

            include    uwsgi_params;

            uwsgi_pass 127.0.0.1:8080;

            uwsgi_read_timeout 2;
    proxy_http_version 1.1;

            proxy_set_header Upgrade $http_upgrade;

            proxy_set_header Connection "upgrade";}

增加下面这3行

uwsgi配置:

在uwsgi.ini文件最后增加:

async = 30

ugreen = ''

http-timeout = 300

这3行是允许uwsgi异步执行的
之后views.py里面响应的视图函数不变,html里面js:

var socket = new WebSocket("ws://" + window.location.host + "/echo_once");

'echo_once'对应相应的路由和响应函数

最后在settings.py增加:

WEBSOCKET_FACTORY_CLASS = 'dwebsocket.backends.uwsgi.factory.uWsgiWebSocketFactory'


重启nginx和uwsgi之后问题解决了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: