Django项目部署
crm项目部署流程笔记
1.创建一个新的虚拟环境,用于运行crm新业务
mkvirtualenv crm
2.解决代码的模块依赖
pip3 freeze > requirements.txt
pip3 install -i https://pypi.douban.com/simple -r requirements.txt
3.安装uwsgi工具,启动crm
pip3 install -i https://pypi.douban.com/simple uwsgi
-
查看
uwsgi
的版本:uwsgi --version (crm) [root@zfy1 code]# uwsgi --version 2.0.18
4.使用uwsgi的配置文件,启动crm项目
- 手动创建uwsgi的配置文件
# 首先是创建名为 uwsgi.ini 的配置文件
touch uwsgi.ini
- 下边是文件配置内容:
[uwsgi]
# 填写项目的完整绝对路径,第一层
chdir = /code/crm_zfy
#指定django的wsgi文件路径,填写相对路径
module = crm_zfy.wsgi
#填写虚拟环境的绝对路径
home = /root/Envs/crm
master = true
#定义程序的多进程数量的,以cpu核数的2倍+1数量填写 2n+1 数量
processes = 9
#把uwsgi启动在socket协议上,的8000端口
socket = 0.0.0.0:8000
#指定http协议的话,用户是可以直接访问到的,不安全的,因此使用socket协议
#http =0.0.0.0:8000
vacuum = true
5.启动uwsgi的命令
uwsgi --ini uwsgi.ini # 指定配置文件启动
6.配置nginx,进行静态文件解析,以及反向代理crm的动态请求
server {
listen 80;
server_name _;
#只要在server{}标签中看到root关键字,说明这个虚拟主机是一个静态文件服务器
#将www.s24pythoncrm.com 这个域名所有的请求,都分发给uwsgi
location / {
uwsgi_pass 127.0.0.1:8000;
include uwsgi_params;
}
}
重新加载nginx,让配置生效
nginx -s reload # 平滑启动
7.把ip做一个本地的hosts解析,添加一个假的域名(线上部署不需要执行,只限在虚拟机上练习使用)
# 找到本地机器的hosts文件C:\Windows\System32\drivers\etc
192.168.16.85 www.s24pythoncrm.com
8.收集crm所有的静态文件,交给nginx去处理
# 修改django的settings.py配置文件,添加如下配置
STATIC_URL = '/static/'
STATIC_ROOT='/opt/s24crmstatic'
# 通过命令收集django所有的静态文件
python3 manage.py collectstatic
9.配置nginx找到crm的静态文件
# 修改配置如下形式
# 配置nginx找到crm所有的静态文件
# 只要是以/static开头的请求,就走如下配置
location /static {
alias /opt/s24crmstatic/;
}
10.重启nginx,查看crm项目
systemctl restart nginx
11.通过supervisor进程管理工具,管理uwsgi的后台,这个工具,其实就是在帮我们执行启动命令
# 需要下载安装即可
yum install supervisor
12.配置supervisor的配置文件
- 通过命令生成supervisor的配置文件
echo_supervisord_conf > /etc/supervisord.conf
# 修改配置文件,加载crm项目
[program:s24crm]
command=/root/Envs/s24crm/bin/uwsgi --ini /s24fuxi/IGnb/uwsgi.ini ; 程序启动命令
autostart=true ; 在supervisord启动的时候也自动启动
stopasgroup=true ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=true ;默认为false,向进程组发送kill信号,包括子进程
13.启动supervisord服务端
supervisord -c /etc/supervisord.conf
# 进入supervisor的管理交互式终端,管理任务
[root@s24_linux css]# supervisorctl -c /etc/supervisord.conf
s24crm RUNNING pid 39763, uptime 0:00:06
14.supervisor的管理命令
status #查看状态
start all #启动所有任务
restart all #重启所有任务