
django部署:django+uwsgi+nginx+vue+websocket
django+uwsgi+nginx+websocket+vue部署,如何部署django+websocket,django使用websocket时如何部署,nginx+django如何配置支持websocket,部署django+nginx+websocket
·
项目结构
study_drf
-chat
-routings.py
-consumers.py
-study_drf
-asgi.py
-uwsgi.py
-static
-manage.py
-uwsgi.ini
django配置websocket请看
django2 https://blog.csdn.net/weixin_46371752/article/details/130535575
django3 https://blog.csdn.net/weixin_46371752/article/details/130517026
一、uwsgi配置
[uwsgi]
#与nginx搭配时使用
socket=127.0.0.1:8000
#项目根目录
chdir=/home/liuhaizhang/project/study_drf
#启动主进程,管理其他
master=true
wsgi-file=study_drf/wsgi.py
process=4
threads=2
pidfile=uwsgi.pid
# 运行的日志
daemonize=uwsgi.log
# 每个进程最大的请求数
max_requests = 1000
# 如果使用的是虚拟环境, 需要指定 pythonpath /lib/python3.9/site-packages
pythonpath = /home/liuhaizhang/.virtualenvs/study_drf
# 启用线程
enable-threads = true
#home=/home/liuhaizhang/.virtualenvs/study_drf
#请求大小
buffer-size = 65536
evil-reload-on-rss = 256
evil-reload-on-as = 256
二、nginx配置
server {
listen 80; #监听端口,浏览器访问的就是这个端口
server_name localhost; #你的服务器IP
client_max_body_size 75M;
charset utf-8;
#vue前端打包后dist位置
root /home/liuhaizhang/project/dist;
index index.html index.htm;
#后端uwsgi启动的http协议
location /api {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
rewrite ^/api/(.*)$ /$1 break;
#重写,当访问80/api时会转发后端,根据自身后端路由,进行重定向转发
# 写法一,通过sock访问
include /etc/nginx/uwsgi_params;
uwsgi_pass 127.0.0.1:8000;
}
# websocket请求交给daphne
location /ws {
proxy_pass http://127.0.0.1:8001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
rewrite ^/ws/(.*)$ /$1 break;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
location /static {
#配置媒体资源,要求同静态资源一致
alias /home/liuhaizhang/project/study_drf/static;
}
}
三、启动
uwsgi启动
#这里将uwsgi.ini 创建在跟manage.py同级目录下
cd 项目根目录下
#启动
uwsgi --ini uwsgi.ini
#停止
uwsgi --stop uwsgi.pid
使用daphne去启动项目下的asgi
daphne -b 127.0.0.1 -p 8001 study_drf.asgi:application
四、测试
测试网站
http://www.easyswoole.com/wstool.html
自己写一个接口:path('socket/<str:name>/',)
一个访问地址 ws://localhost:80/ws/socket/lhz/
另一个访问 ws://localhost:80/ws/socket/zzh/
这样,两个浏览器就可以进行群聊了。
更多推荐
所有评论(0)