django+uwsgi+nginx: websock 报502/400

耽搁了近2个月,终于解决了,主要是nginx/uwsgi/django相关的配置:html

1、django工程settings.py,添加 nginx

WEBSOCKET_FACTORY_CLASS = "dwebsocket.backends.uwsgi.factory.uWsgiWebSocketFactory"web

参考:http://www.javashuo.com/article/p-bflmgbhl-de.htmldjango

 

2、nginx配置后端

location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8088; uwsgi_send_timeout 600;        # 指定向uWSGI传送请求的超时时间,完成握手后向uWSGI传送请求的超时时间。
    uwsgi_connect_timeout 600;   # 指定链接到后端uWSGI的超时时间。
    uwsgi_read_timeout 600; ##### 支持websocket
 proxy_redirect off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; }

 

3、uwsgi.ini 服务器

[uwsgi] # 配置服务器的监听ip和端口,让uWSGI做为nginx的支持服务器的话,设置socke就行;若是要让uWSGI做为单独的web-server,用http #http = 127.0.0.1:8088
socket = 127.0.0.1:8088
# 配置项目目录(此处设置为项目的根目录)
chdir = /srv/qa-platform/back-server # 配置入口模块 (django的入口函数的模块,即setting同级目录下的wsgi.py)
wsgi-file = back-server/wsgi.py # 开启master, 将会多开一个管理进程, 管理其余服务进程
master = True # 服务器开启的进程数量
processes = 2
# 以守护进程方式提供服, 输出信息将会打印到log中
daemonize = /srv/qa-platform/back-server/logs/wsgi.log # 服务器进程开启的线程数量
threads = 4
# 退出的时候清空环境变量
vacuum = true # 进程pid
pidfile = uwsgi.pid

 

4、启动:uwsgi --ini uwsgi.ini --http-websocketswebsocket

相关文章
相关标签/搜索