django+uwsgi+nginx: websock 报502/400
耽搁了近2个月,终于解决了,主要是nginx/uwsgi/django相关的配置:
一、django工程settings.py,添加
WEBSOCKET_FACTORY_CLASS = "dwebsocket.backends.uwsgi.factory.uWsgiWebSocketFactory"
参考:https://www.cnblogs.com/Xjng/p/4853080.html
二、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; }
三、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
四、启动:uwsgi --ini uwsgi.ini --http-websockets
相关推荐
岁月如歌 2020-07-27
lreis00 2020-06-29
89403969 2020-06-12
ZhaoMengjiao 2020-06-09
87193750 2020-05-30
咻咻ing 2020-05-17
eightbrother 2020-05-05
87254055 2020-04-14
ZhaoMengjiao 2020-03-28
ZhaoMengjiao 2020-03-08
89403969 2020-03-04
89403969 2020-03-04
87193750 2020-02-24
85407718 2020-02-09
eightbrother 2020-01-02
vanturman 2019-12-26
山顶冻人 2019-12-25
aolishuai 2019-12-13
89403969 2019-12-11