django天天生鲜项目部署总结

项目架构图:

django天天生鲜项目部署总结_第1张图片

 

部署环境:谷歌云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. 面板设置中自定义面板安全入口、面板用户、密码等,方便后续登入

django天天生鲜项目部署总结_第2张图片

2.3. 网站中添加站点

django天天生鲜项目部署总结_第3张图片

django天天生鲜项目部署总结_第4张图片

添加ssl证书

django天天生鲜项目部署总结_第5张图片

django中导出静态文件

# settings中添加
STATIC_ROOT = 'static文件夹导出的路径'

# 执行
python manage.py collectstatic

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

django天天生鲜项目部署总结_第6张图片

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

django天天生鲜项目部署总结_第7张图片

 

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

网站设置中添加配置项

django天天生鲜项目部署总结_第8张图片

django天天生鲜项目部署总结_第9张图片

 

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,python,redis,mysql,linux)