docker实现django+daphne+nginx(uwsgi+channels)项目部署

孟意致
2023-12-01

介绍

常规部署形式为django+uwsgi+nginx组合,但本项目之区别就是将uwsgi替换成daphne。
为什么要使用daphne?与uwsgi有何区别?
项目中使用了channels实现了websocket功能,启动方式由原先的uwsgi协议变成了asgi启动,即项目既要支持http请求,又要支持websocket请求

http支持 websocket支持
uwsgi ×
daphne

现在有两种部署方式:

  • uwsgi+daphne部署:http请求发送给uwsgi处理,websocket请求发送给daphne处理。
    部署完成后uwsgi与daphne分别需要一个本地端口映射,所以这种方式需要2个端口
  • daphne部署
    我选择的部署方式,原因有二:1、我的项目中http与ws请求的是一个端口2、方便省事快捷

一、项目分析

我的django项目中需要使用mysql、redis。部署需要nginx。所以需要编辑四个镜像

镜像 容器名 版本 设置网络实现局域网内容器通信
mysql django_mysql latest django_net
redis django_redi
 类似资料: