目录
crm django 项目部署流程
使用 supervisro 启动 uwsgi, 退出虚拟环境, 使用物理环境的 python2 去安装
前后端分离项目部署流程
原理图
crm django 项目部署流程
项目部署, 环境准备
1.python3 虚拟环境准备
mkvirtualenv -p python3 my_django
2. 安装 uwsgi
pip3 install uwsgi
安装 django
- pip3 install django==1.11.18
- pip3 install -i https://pypi.douban.com/simple pymysql
- pip3 install -i https://pypi.douban.com/simple django-multiselectfield
3. 通过 uwsgi 启动 django 项目
1. 进入项目的第一层
cd Ace_crm
2. 执行命令启动 django
uwsgi --http :8000 --module Ace_crm.wsgi
4. 热加载 uwsgi 命令如下
uwsgi --http :8088 --module mysite.wsgi --py-autoreload=1
5. 通过配置文件, 启动 uwsgi
这个文件叫做 uwsgi.INI
- # 手动创建这个配置文件, 写入如下信息
- [uwsgi]
- # Django-related settings
- # the base directory (full path)
- # 这里写入项目的绝对路径
- chdir = /opt/crm/Ace_crm
- # Django's wsgi file
- # 写入 django 的第二层文件夹, 和 wsgi.py 文件
- module = Ace_crm.wsgi
- # the virtualenv (full path)
- # 虚拟环境的绝对路径
- home = /root/Envs/my_django
- # process-related settings
- # master
- master = true
- # maximum number of worker processes
- processes = 5
- # 如果你没用 nginx, 想直接访问 django 后台, 可以使用 http 协议
- #http = 0.0.0.0:8000
- # 如果你用了 nginx 进行反向代理, 请使用 socket 协议, 注释掉 http 协议
- # 如果你用了 nginx 进行反向代理, 请使用 socket 协议, 注释掉 http 协议
- # 如果你用了 nginx 进行反向代理, 请使用 socket 协议, 注释掉 http 协议
- socket = 0.0.0.0:8000
- # ... with appropriate permissions - may be needed
- # chmod-socket = 664
- # clear environment on exit
- vacuum = true
启动
uwsgi --INI uwsgi.INI
6.nginx 结合 uwsgi 启动
1. 修改 nginx 配置 nginx.conf 如下
- #是 nginx 进行反向代理
- location / {
- include uwsgi_params;
- uwsgi_pass 0.0.0.0:8000;
- }
- #http://192.168.11.250/static/admin/CSS/base.css
- #当请求 url, 从 static 路径开始时, 我们就让他去找某一个文件夹
- #解决静态文件的配置方式
- location /static {
- alias /opt/aceCrmStatic;
- }
2. 修改 django 的 settings.py, 收集静态资源
1. 修改 settings.py 如下
- STATIC_ROOT="/opt/aceCrmStatic"
- STATIC_URL = '/static/'
- STATICFILES_DIRS = [
- os.path.join(BASE_DIR, 'static')
- ]
3. 使用命令收集 django 的静态文件
- python3 manage.py collectstatic
- ?
4. 此时静态页面配置完毕
使用 supervisro 启动 uwsgi, 退出虚拟环境, 使用物理环境的 python2 去安装
1. 安装 supervisor
- yum install python-setuptools
- easy_install supervisor
2. 安装完毕后, 生成配置文件
echo_supervisord_conf> /etc/supervisord.conf
3. 在配置文件中, 添加任务, 管理 uwsgi
- VIM /etc/supervisord.conf #在最底行, 写入配置如下
- [program:s17uwsgi]
- command=/root/Envs/my_django/bin/uwsgi --INI /opt/crm/Ace_crm/uwsgi.INI
- stopasgroup=true
- killasgroup=true
- [program:s17nginx]
- command=/opt/tnginx220/sbin/nginx
- stopasgroup=true
- killasgroup=true
4. 启动 supervisor 服务
supervisord -c /etc/supervisord.conf
5. 通过命令管理任务, 管理 uwsgui
supervisorctl -c /etc/supervisord.co
6. 学习管理 supervisor 的命令
start 任务名
stop 任务名
- stop all
- start all
status 任务名
nginx + uwsgi + crm + mariadb +supervisor
前后端分离项目部署流程
一. 准备代码
二. 从后端搞起
解决环境依赖
把可以正常运行路飞哪个机器地下的 python 包, 全部导出来, 就可以
pip3 freeze> requirements.txt
把这个文件, 传输给 Linux 系统
Linux 再通过命令安装
pip3 install -r requirements.txt
通过模块依赖文件, 直接安装, 着是从讲师机器上下载的
手动创建依赖文件, 然后写入
- (s17luffy) [root@master luffy_boy]# cat requirements.txt
- certifi==2018.11.29
- chardet==3.0.4
- crypto==1.4.1
- Django==2.1.4
- django-Redis==4.10.0
- django-REST-framework==0.1.0
- djangorestframework==3.9.0
- idna==2.8
- Naked==0.1.31
- pycrypto==2.6.1
- pytz==2018.7
- PyYAML==3.13
- Redis==3.0.1
- requests==2.21.0
- shellescape==3.4.1
- urllib3==1.24.1
- uWSGI==2.0.17.1
安装 uwsgi 启动后端
pip3 install uwsgi
启动方式 1, 用参数启动 uwsgi --socket :8000 --module luffy_boy.wsgi
启动方式 2: 用配置文件启动
touch uwsgi.INI
写入配置:
- [uwsgi]
- # Django-related settings
- # the base directory (full path)
- chdir = /opt/luffy_boy
- # Django's wsgi file
- module = luffy_boy.wsgi
- # the virtualenv (full path)
- home = /root/Envs/vue
- # process-related settings
- # master
- master = true
- # maximum number of worker processes
- processes = 1
- # the socket (use the full path to be safe
- socket = 0.0.0.0:6666
- # ... with appropriate permissions - may be needed
- # chmod-socket = 664
- # clear environment on exit
- vacuum = true
二. 开始搞前段 (vue)
1. 准备 node 环境 , 下载 node 环境包
wget https://nodejs.org/download/release/v8.6.0/node-v8.6.0-linux-x64.tar.gz
2. 解压缩 node 包
tar -zxvf node-v8.6.0-Linux-x64.tar.gz
3. 添加 node 到环境变量
- PAHT="node 环境"
- VIM /etc/pro..
- source /etc/pro..
4. 开始编译打包前端 vue 文件
1. 修改 vue 提交的请求地址, 修改文件是
/opt/s17luffy/07-luffy_project_01/src/restful/API.JS
2. 更改接口内的地址
原本是 127.0.0.1:8000/
改成服务器的 ip 地址 + 端口
sed -i "s/127.0.0.1/192.168.11.175/g" /opt/07-luffy_project_01/src/restful/API.JS
此时进入 vue 代码的第一层文件夹
cd /opt/s17luffy/07-luffy_project_01
3. 安装 node 模块, 这是找到 package.JSON, 安装它的内容
NPM install
4. 编译打包 vue 代码, 这一步会生成 dist 静态文件夹, 用于 nginx 展示, 路飞的页面都在这了
NPM run build
5. 配置 nginx 去找到这个路飞学城页面
修改 nginx.conf(也可以利用 include /opt/tnginx220/conf/conf.d/*.conf; 去 conf.d 配置) 参数如下
虚拟主机 1, 用于找到 vue 页面
- server {
- listen 80;
- server_name s17dnf.com;
- location / {
- root /opt/07-luffy_project_01/dist;
- index index.html;
- }
- }
虚拟主机 2, 用于反向代理, 找到 django
- server{
- listen 8000;
- server_name 192.168.11.250;
- location / {
- include uwsgi_params;
- uwsgi_pass 0.0.0.0:6666;
- }
- }
6. 重启 nginx
7. 启动 Redis 数据库, 支撑购物车数据
Redis-server Redis.conf
三. 确保前端 vue 正常, 后端 django 正常, nginx 启动正常, Redis 启动正常, 在 Windows 中访问页面
原理图
来源: http://www.bubuko.com/infodetail-2987512.html