项目架构图:

部署环境:谷歌云vps/Ubuntu18.04.5/宝塔面板

额外用到的生产环境:miniconda/django3.1/python3.6/celery/redis/mysql/fastdfs/nginx/uwsgi

前期工作:

注册域名、买服务器、备案(国内服务器),申请ssl证书

1. 配置服务器

1.1. vps开启http、https流量,配置防火墙开放所有端口或者使用到的端口

例如:stmp邮件服务器:25、465(ssl)             fastdfs:22122(tracker),23000(storage)

1.2. 设置可远程SSH登录

# 切换root用户
sudo -i # 编辑配置文件
vi /etc/ssh/sshd_config# 修改
PermitRootLogin = yes
PasswordAuthentication = yes
:wq 保存退出# 修改root密码
passwd root# 重启SSH服务
/etc/init.d/ssh restart

1.3. 安装宝塔面板:https://www.bt.cn/

# 切换到/tmp (个人习惯)
cd /tmp# 下载并安装宝塔面板 (参考官网安装教程)
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh# 安装完会提示宝塔面板登录地址和账号密码
# 复制出来保存

2. 配置宝塔面板

2.1. 浏览器登录宝塔面板,首次登录会提示快速安装LNMP等、这里勾选了nginx、mysql一键安装

2.2. 面板设置中自定义面板安全入口、面板用户、密码等,方便后续登入

2.3. 网站中添加站点

添加ssl证书

django中导出静态文件

# settings中添加
STATIC_ROOT = 'static文件夹导出的路径'# 执行
python manage.py collectstatic

静态文件放到面板文件/www/wwwroot/你的网站默认路径下

项目文件放到外层/www/wwwroot 目录下,修改权限和所有者

3. 安装生产环境所需软件

3.1. 安装uwsgi

# 安装python开发包
sudo apt-get install python3-dev# 安装pip3
sudo apt-get install python3-pip # 安装uwsgi
sudo pip3 install uwsgi

3.2. 安装redis:https://blog.csdn.net/m0_37871461/article/details/115461649

3.3. 安装fastdfs+nginx:https://blog.csdn.net/m0_37871461/article/details/115547297

3.4. 安装虚拟环境miniconda/virtualenv

我这里使用的是miniconda:https://blog.csdn.net/m0_37871461/article/details/115419638

3.5. 安装项目第三方需求库(requirements.txt)

# 进入虚拟环境,我这里的虚拟环境名为django
conda activate django# 在requirements文件目录下执行
pip3 install -r requirements.txt

我这里的第三方需求库清单为:

amqp==5.0.6
anyjson==0.3.3
asgiref==3.2.10
billiard==3.6.4.0
celery==5.0.5
certifi==2020.12.5
click==7.1.2
click-didyoumean==0.0.3
click-plugins==1.1.1
click-repl==0.1.6
Django==3.1
django-haystack==3.0
django-redis==4.12.1
django-redis-sessions==0.6.2
django-tinymce==3.3.0
fdfs-client-py3==1.0.0
itsdangerous==1.1.0
jieba==0.42.1
kombu==5.0.2
Pillow==8.2.0
prompt-toolkit==3.0.18
pycryptodomex==3.9.4
pymysql==1.0.2
pyOpenSSL==19.1.0
python-alipay-sdk==3.0.1
redis==3.5.3
six==1.15.0
vine==5.0.0
wcwidth==0.2.5
Whoosh==2.7.4

安装完后记得拷贝jieba分词文件ChineseAnalyzer.py、whoosh_cn_backend.py到haystack/backends下

重点注意:uwsgi不要安装在虚拟环境中

4. 配置宝塔中的nginx

网站设置中添加配置项

5. 配置uwsgi

进入项目目录,创建uwsgi.ini文件

[uwsgi]
#使用nginx连接时使用
socket=127.0.0.1:8080
#直接做web服务器使用 python manage.py runserver ip:port
#http=127.0.0.1:8080
#项目目录
chdir=/www/wwwroot/dailyfresh
#项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=dailyfresh/wsgi.py
#指定启动的工作进程数
processes=4
#指定工作进程中的线程数
threads=2
#有一个主进程
master=True
#保存启动之后主进程的pid
pidfile=uwsgi.pid
#设置uwsgi后台运行,uwsgi.log保存日志信息
daemonize=uwsgi.log
#设置虚拟环境的路径
virtualenv=/miniconda3/envs/django

6. 启动项目

6.1. 重新迁移数据库,导入数据库中的数据

# 进入项目目录
cd /www/wwwroot/dailyfresh/# 切换虚拟环境
conda activate django# 生成迁移文件
python manage.py makemigrations# 迁移数据库
python manage.py migrate

6.2. 开启celery异步线程

# 正常worker模式,info可改成debug等
celery -A dailyfresh worker -l info# 后台守护模式
celery multi start w1 -A dailyfresh -l info --logfile=./celerylog.lo

6.3. 开启uwsgi

# 退出虚拟环境
conda deactivate# 开启uwsgi
uwsgi --ini uwsgi.ini

django天天生鲜项目部署总结相关推荐

  1. 【Django 天天生鲜项目05】订单(Mysql事务、并发处理、支付宝支付、评论)

    本部分涉及订单的生成.并发处理.支付.评论等 关键:MySQL事务.并发处理的悲观锁/乐观锁.支付宝SDK 的使用...... 仅作为个人笔记! 目录 2.创建订单 3.订单生成 3.1. MySQL ...

  2. django天天生鲜项目

    项目开发流程 需求分析: 模块 页面图 功能图 部署图 项目架构 数据库表 用户表和地址表是一对多,在SKU放图片是以空间换时间,比如在搜索结果下面显示商品的信息,直接提取,不用再到另一个表提取,in ...

  3. 天天生鲜项目开发笔记

    天天生鲜项目开发笔记 说在前面的话 大学四年,忙忙碌碌,什么都学了,又好像什么都没学,总之要毕业了,毕设题目是"生鲜配送系统",B站上找到了一个天天生鲜的项目开发教程,之后文章记录 ...

  4. django+nginx+uwsgi项目部署文档整理

    django+nginx+uwsgi项目部署文档整理 参考文章:https://blog.csdn.net/qq_42314550/article/details/81805328 一.python安 ...

  5. Python django天天生鲜商城系统

    Python django天天生鲜商城系统 pythondjango 网络商城 pythondjango 电商商城 该套系统可以改成其他的商城,比如衣服商城.车商城等等 后端:python djang ...

  6. 瞬间心情愉悦,头发都少掉了几根!---Django+uwsgi+Nginx项目部署超详细步骤

    文章目录 瞬间心情愉悦,头发都少掉了几根!---Django+uwsgi+Nginx项目部署超详细步骤 先决条件 步骤 本地运行测试 上传服务器 环境安装 准备django程序 完美解决! 瞬间心情愉 ...

  7. Django通过celery 异步发送邮件 : django开发之天天生鲜项目知识总结【5】

    这里初次学习celery,只简单讲解一下如何使用celery 异步发送邮件,在以后的总结中还会,多次提到celery,因为后面很多任务都需要用到celery执行任务,后面再专门针对celery做具体的 ...

  8. 天天生鲜项目从0开始

    天天生鲜 一.环境准备 因为此文章是实践项目文章,所以对于基础的python安装就不多做赘述,这里只交代系统环境是ubuntu操作系统,python3.5 安装虚拟环境软件 安装虚拟环境: sudo ...

  9. 天天生鲜项目 python邮箱_python3 之 天天生鲜 项目(初学者)1

    简单第一步 假设: 你已学过 python基础.高级:了解并简单使用linux操作系统:mysql数据库.redis数据库的简单使用:掌握Django框架的使用 这是一个 很多培训机构 讲解的项目 r ...

最新文章

  1. ETSI — MEC — 移动性支持
  2. Calling handler.OnEndpointsUpdate报错原因
  3. 来自一名程序员的表白
  4. jQuery ajax的traditional参数的作用
  5. 如何用Snapgene 4.3.6进行序列比对及查找碱基位点
  6. vc 文本框 只显示下划线_Word手动添加下划线就out了?虚线、波浪线、双下划线一键搞定...
  7. gdb tui 安装_GDB 单步调试汇编
  8. 生日快乐程序员的浪漫代码_python告白代码,只属于程序员的浪漫
  9. [saiku] 配置saiku实时展现查询数据
  10. vfp中写入文本文件_VFP中操作多种文件
  11. 【软件工具】之录屏软件 Captura
  12. 正点原子STM32F103学习笔记(一)
  13. 深度学习教程 | 吴恩达专项课程 · 全套笔记解读
  14. Qt for WebAssembly 环境配置 - 知其然并知其所以然
  15. 【源码解析】Activity的启动模式
  16. (2021 ICCV)Specificity-preserving RGB-D Saliency Detection(A类)
  17. 电脑数据信息安全常识
  18. [经典面试题][淘宝]求首尾相连数组的最大子数组和
  19. 使用pandas处理excel,并使用Openpyxl修改单元格格式
  20. python断网还能用吗_python 断网

热门文章

  1. Windows关闭123、137、138、139、445、1900等端口监听指引
  2. 如何安装python3.8.2_Python-3.8.2安装
  3. tomcat的详细介绍
  4. 道路分割 matlab,MATLAB图像的道路分割技术研究
  5. html 判断复选框是否选中,jquery如何判断复选框是否选中?
  6. echarts图形化学习
  7. Javascript之File和Blob函数的使用、创建文件上传服务器
  8. MySQL数据库与SQL优化
  9. openJDK下载教程
  10. java -jar 工作原理_可执行Jar包运行原理