django部署:django+uwsgi+nginx+vue+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/
在这里插入图片描述
这样,两个浏览器就可以进行群聊了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值