美文网首页
Django项目部署到服务器

Django项目部署到服务器

作者: _karen | 来源:发表于2020-08-18 14:03 被阅读0次

    Django项目部署到服务器有三种方式
    1.uwsgi
    2.uwsgi+nginx项目部署(推荐)
    3.uwsgi+nginx分布式项目部署

    uwsgi项目部署

    步骤

    • 1.确定远程主机IP地址,登录账号,登录密码
    包括FTP登录账号和密码
    SSH远程终端登录账号+密码
    
    • 2.确定远程主机软件环境(项目环境)
    1.python是否安装配置完成(版本号要与开发环境一致)
    2.Django模块是否安装配置完成(版本号要与开发环境一致)
    3.mysql数据库是否安装配置完成
    4.确定项目中使用的第三方模块是否安装配置完成
    
    • 3.uwsgi项目部署
    1.确认uwsgi是否安装成功[uwsgi是python的一个模块]
    2.如果没有安装  pip3 install uwsgi
    
    • 4.上传项目,部署web app
    1.FTP上传已经打包压缩好的web项目
    2.在服务器解压缩,检查项目的完整性
    
    • 5.创建对应的数据库,同步数据模型对应的数据表
    1.在setting的data中查看需要的数据库,注意配置密码
    2.在数据库创建数据库
    3.python manage.py makemigrations
    4.python manage.py migrate
    5.初始化导入需要的数据
    
    • 6.处理静态文件
    static_root=‘static的路径’
    执行命令收集所有的静态文件  python manage.py  collectstatic
    
    • 7.命令运行Django项目
    uwsgi --http=192.168.X.X:8000 --flie=项目名/wsgi.py ---static_map=/static=static_file '静态文件的地址'
    
    • 8.配置所有需要的选项,通过配置文件启动uwsgi服务器
    1.在项目路径下创建一个uwsgi.ini配置文件
    2.写配置项
    [uwsgi]
    http=192.168.x.x:8000
    chdir=项目路径  # 项目根目录
    wsgi-file=项目名/wsgi.py # wsgi文件的目录
    process=4  # 要启动多少个进程
    threads=2  # 每个进程启动几个线程
    master=true  # 主管理进程
    pidfile=uwsgi.pid  # 主管理进程放到哪个文件中
    daemonize=uwsgi.log  # uwsgi日志
    static-map=/static=static_file   # 静态文件
    3.用配置文件来启动   uwsgi --ini uwsgi.ini
    4.查看启动是否成功  ps -ef|grep uwsgi
    [启动6个进程,一个主进程,4个process工作进程,1个守护进程(监测工作进程是否启动)]
    

    uwsgi+nginx项目部署(推荐)

    • 分工
      uwsgi部署web app
      Nginx 反向代理服务器 静态文件服务器
    • 原理
      1.Nginx接收请求,转发给uwsgi
      2.Nginx和uwsgi之间是通过socket连接的
    • 步骤
    • 1.修改uwsgi配置文件
    1.http连接修改成socket连接
    2.为了保证项目的安全性,将公网的地址修改成本机的地址 socket = 127.0.0.1:8000
    3.静态文件映射注释掉
    
    • 2.Nginx相关
    1.确认服务是否安装了Nginx
    2.修改nginx配置文件/etc/nginx/nginx.conf
    - 添加虚拟服务器配置[service],service配置包含在http配置中,直接在http中追加即可,然后执行下面两条
    - 添加反向代理路由配置[location -uwsgi_pass]
    - 添加静态文件路由配置[location -alias]
    
    • 3.重启nginx
    与方案一比较

    1.nginx对于静态文件的处理优于uwsgi
    2.uwsgi对于动态请求的处理非常优秀,所以最好的方式就是nginx反向代理,让uwsgi处理动态请求

    uwsgi+nginx分布式项目部署

    单服务器模式[伪分布式]

    • 原理
      1.Nginx接收请求,作为负载均衡服务器分发请求给uwsgi
      2.Nginx做静态服务器,处理静态文件
    • 步骤
      1.uwsgi改造
    1.将uwsgi接收请求的方式修改为http
    

    2.nginx配置

    1.配置静态文件服务器[location -alias]
    2.负载均衡
    1.配置上行的数据流量upstream myweb {server ip:端口  server ip:端口}  将多个转发请求的服务地址配置上
    2.路由配置[location / {Proxy_pass:http://myweb;}]
    

    默认情况下,nginx的负载均衡,请求轮询分发给所有后端服务器

    相关文章

      网友评论

          本文标题:Django项目部署到服务器

          本文链接:https://www.haomeiwen.com/subject/lwahjktx.html