项目架构图:
部署环境:谷歌云vps/Ubuntu18.04.5/宝塔面板
额外用到的生产环境:miniconda/django3.1/python3.6/celery/redis/mysql/fastdfs/nginx/uwsgi
前期工作:
注册域名、买服务器、备案(国内服务器),申请ssl证书
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.1. 浏览器登录宝塔面板,首次登录会提示快速安装LNMP等、这里勾选了nginx、mysql一键安装
2.2. 面板设置中自定义面板安全入口、面板用户、密码等,方便后续登入
2.3. 网站中添加站点
添加ssl证书
django中导出静态文件
# settings中添加
STATIC_ROOT = 'static文件夹导出的路径'
# 执行
python manage.py collectstatic
静态文件放到面板文件/www/wwwroot/你的网站默认路径下
项目文件放到外层/www/wwwroot 目录下,修改权限和所有者
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不要安装在虚拟环境中
网站设置中添加配置项
进入项目目录,创建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.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