Django 项目基础的部署步骤流程

在之前我关于项目部署时候,现在回想写下自己的流程,希望对大家有用

需求分析阶段 (产品部门、开发部门/研发部门)

  • 概要设计
  • 详细设计

原型设计阶段 (研发部门、产品部门)

  • 按照客户需求设置原型图(草图)
    项目开发阶段 (研发部门、产品部门)
  • UI设计
  • 前端网页制作
  • 后端代码开发(我们的职责)
    项目测试阶段 (测试部门)
  • 业务测试
  • 页面效果测试
  • 压力测试

项目运营阶段 (运营部)

  • 项目上线的正常运行

Django 项目上线准备工作

  • wsgi / asgi
    • wsgi (Python Web Server Gateway)
    • 是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口
    • 是Web服务器和Web应用程序之间进行通信的接口
    • 是一种协议(数据传输的一种标准)
    • asgi 是一个 异步网关协议接口
    • ASGI是WSGI的扩展
  • uwsgi
    • uwsgi 是实现了 wsgi协议的服务器 ,可以通过 wsgi接口来访问应用程序
    • wsgi://ip:port
    • wsgi协议是在浏览器上无法进行访问的一种协议
  • nginx (开源的)服务器
    • 反向代理
      • 由于公司担心真实的服务器信息会被泄露、而在真实服务器和用户之间
        搭建一台代理服务器,代理服务器完成用户的转发请求
        特点:代理是服务器段、是企业添加的,用户访问的不是真实的提供服务的服务器,而是代理服务器
    • 负载均衡
    • 动静分离
    • 防盗链
    • 正向代理
      • 由于某种原因或者政策的影响、导致某个网站在某个地区
        不能正常的被访问、可以架设一台代理服务器,通过代理服务器
        去正常访问某个网站,
        特点:代理是客户端的、是用户自己添加的, 用户访问的目标是很明确的
    • rewrite(重写)

Nginx-反向代理

找到 nginx.conf 文件,并修改内容

server {
location / {
proxy_pass http://192.168.10.11:8000 ;
}
}

Nginx-负载均衡 (集群/云计算),默认采用的是轮询操作

  • www_pools 是容器的名字,可以自己随便写

upstream www_pools {
ip_hash ;
server 192.168.10.1:9000 weight=1;
server 192.168.10.2:8000 weight=6;
server 192.168.10.3:7000 weight=2;
server 192.168.10.4:9000 weight=4;
}

  • 权重 weight
  • ip_hash 策略

server {
location / {
proxy_pass http://www_pools;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

Django 的项目部署

在 linux 上安装 python 项目需要的虚拟环境

  • 安装 pip3
    sudo apt install python3-pip

  • 配置 pip linux 上的虚拟镜像地址

cd ~
mkdir -p .pip
cd .pip
touch pip.conf

vim pip.conf 

[global] 
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn

  • 安装 virtualenv 库 (是用来创建虚拟环境的库)
    pip3 install virtualenv

  • 配置环境变量
    sudo find / -name virtualenv
    /home/python/.local/bin

sudo vim /etc/profile
在文件的尾部添加
export PATH=$PATH:/home/python/.local/bin

  • 激活系统环境变量
    source /etc/profile

  • 创建python虚拟环境
    virtualenv venv

  • 激活python虚拟环境
    source ~/app/venv/bin/activate

  • 安装项目需要的库

  pip3 install django==2.2
  
  pip3 install mysqlclient

在安装mysqlclient 的时候,需要安装相关的库文件
sudo apt install libmysqld-dev
sudo apt install libssl-dev
再去安装 mysqlclient 就可以了

上传代码到linux

  • 准备项目

  • 修改settings.py 配置

    • DEBUG = False
    • ALLOWED_HOST = ["*"]
    • 数据库连接的地址
  • 上传项目到 linux 上
    在 SSH 工具上,ALT + P 打开 sftp窗口

put -r window路径 linux路径
put -r C:/Users/Administrator/Desktop/test /home/python/app

你可能感兴趣的:(Django)