项目部署

文章目录

  • 项目部署
    • uWSGI 网关接口配置 (ubuntu 18.04 配置)
    • nginx 及反向代理配置
    • nginx 配置静态文件路径
  • 项目部署是指在软件开发完毕后,将开发机器上运行的开发板软件实际安装到服务器上进行长期运行

  • 部署要分以下几个步骤进行

    1. 在安装机器上安装和配置同版本的环境

    2. django 项目迁移

      $ sudo scp 当前项目源代码 远程主机地址和文件夹

      sudo scp /home/tarena/django/mysite1 root@88.77.66.55:/home/root/xxx
      请输入root密码:
      
    3. 用 uwsgi 替代python3 manage.py runserver 方法启动服务器

    4. 配置 nginx 反向代理服务器

    5. 用nginx 配置静态文件路径,解决静态路径问题

uWSGI 网关接口配置 (ubuntu 18.04 配置)

  • WSGI (Web Server Gateway Interface)Web服务器网关接口,是Python应用程序或框架和Web服务器之间的一种接口,被广泛使用

  • 使用 python manage.py runserver 通常只在开发和测试环境中使用。

  • 当开发结束后,完善的项目代码需要在一个高效稳定的环境中运行,这时可以使用WSGI

  • uWSGI是WSGI的一种, 它实现了 http协议 WSGI协议 以及 uwsgi协议

  • 安装uWSGI

    • 终端输入如下命令

      sudo pip3 install uwsgi==2.0.18 -i https://pypi.tuna.tsinghua.edu.cn/simple/
      
    • 检查是否安装成功

      sudo pip3 freeze|grep -i 'uwsgi'
      #如果成功安装,则会输出
      uWSGI==2.0.18
      
  • 配置uWSGI

    • 添加配置文件 项目同名文件夹/uwsgi.ini

      • 如: mysite1/mysite1/uwsgi.ini
      [uwsgi]
      # 套接字方式的 IP地址:端口号
      # socket=127.0.0.1:8000
      # Http通信方式的 IP地址:端口号
      http=127.0.0.1:8000
      # 项目当前工作目录
      chdir=/home/tarena/.../my_project 这里需要换为项目文件夹的绝对路径
      # 项目中wsgi.py文件的目录,相对于当前工作目录
      wsgi-file=my_project/wsgi.py
      # 进程个数
      process=4
      # 每个进程的线程个数
      threads=2
      # 服务的pid记录文件
      pidfile=uwsgi.pid
      # 服务的目志文件位置
      daemonize=uwsgi.log
      # 开启主进程管理模式
      master=true
      
    • 修改settings.py将 DEBUG=True 改为DEBUG=False

    • 修改settings.py 将ALLOWED_HOSTS = [] 改为ALLOWED_HOSTS = [‘网站域名’] 或者 [‘服务监听的ip地址’]

  • uWSGI的运行管理

    • 启动 uwsgi

      $ 进入到项目同名文件夹下 【即settings.py所在目录】
      $ sudo uwsgi --ini uwsgi.ini
      
    • 停止 uwsgi

      $ 进入到项目同名文件夹下 【即settings.py所在目录】
      $ sudo uwsgi --stop uwsgi.pid
      
    • 说明:

      • 当uwsgi 启动后,当前django项目的程序已变成后台守护进程,在关闭当前终端时此进程也不会停止。

      • 若执行 stop 操作失败,则需要执行如下操作杀死进程

        ps aux|grep 'uwsgi'  -> 查看uwsgi进程tarena   103408  0.0  0.9 137172 39984 ?        S    10:02   0:01 uwsgi --ini uwsgi.ini
        tarena   103410  0.0  0.9 436200 38552 ?        Sl   10:02   0:00 uwsgi --ini uwsgi.inips -ef | grep 'uwsgi' | grep -v grep | awk '{print $2}' | xargs sudo kill -9
        
  • 测试:

    • 在浏览器端输入http://127.0.0.1:8000 进行测试
    • 注意,此时端口号为8000

nginx 及反向代理配置

  • Nginx是轻量级的高性能Web服务器,提供了诸如HTTP代理和反向代理、负载均衡、缓存等一系列重要特性,在实践之中使用广泛。

  • C语言编写,执行效率高

  • nginx 作用

    • 负载均衡, 多台服务器轮流处理请求
    • 反向代理
  • 原理:

  • 客户端请求nginx,再由nginx 将请求转发 uWSGI 运行的django

  • ubuntu 下 nginx 安装
    $ sudo apt install nginx

    vim /etc/apt/sources.list
    更改国内源
    sudo apt-get update
    
  • nginx 配置

    • 修改nginx 的配置文件 /etc/nginx/sites-enabled/default
    # 在server节点下添加新的location项,指向uwsgi的ip与端口。
    server {...location / {uwsgi_pass 127.0.0.1:8000;  # 重定向到127.0.0.1的8000端口include /etc/nginx/uwsgi_params; # 将所有的参数转到uwsgi下}...
    }
    
  • nginx服务控制

    $ sudo /etc/init.d/nginx start|stop|restart|status
    # 或
    $ sudo service nginx start|stop|restart|status
    

    通过 start,stop,restart,status 可能实现nginx服务的启动、停止、重启、操作

  • 修改uWSGI配置

    • 修改项目同名文件夹/uwsgi.ini下的Http通信方式改为socket通信方式
    [uwsgi]
    # 去掉如下
    # http=127.0.0.1:8000
    # 改为
    socket=127.0.0.1:8000
    
    • 重启uWSGI服务
    进入到 项目同名文件夹下
    $ sudo uwsgi --stop uwsgi.pid
    $ sudo uwsgi --ini uwsgi.ini
    
    • 测试:

      • 在浏览器端输入http://127.0.0.1 进行测试

      • 注意 :

        1,此时端口号为80(nginx默认值)

        2,Django中有任何修改 需要重启 uwsgi , 否则修改不生效

nginx 配置静态文件路径

  • 创建新路径-主要存放Django所有静态文件 如: /home/tarena/项目名_static/

  • 在Django settings.py 中添加新配置

    STATIC_ROOT = '/home/tarena/项目名_static/static
    #注意 此配置路径为 存放所有正式环境中需要的静态文件
    
  • 进入项目,执行 python3 manage.py collectstatic 。执行该命令后,Django将项目重所有静态文件 复制到 STATIC_ROOT 中 ,包括Django内建的静态文件【如admin后台的样式】

  • Nginx配置中添加新配置

    # file : /etc/nginx/sites-enabled/default
    # 新添加location /static 路由配置,重定向到指定的 第一步创建的路径即可
    server {...location /static {# root 第一步创建文件夹的绝对路径,如:root /home/tarena/项目名_static;          }...
    }
    

Django项目部署以及nginx配置相关推荐

  1. Django项目部署 uwsgi+nginx 负载均衡

    部署示意图 uwsig 第一步:安装uwsig pip install uwsgi 第二步:配置uwsgi 手动在项目根目录下新建文件uwsgi.ini [uwsgi]# 使用nginx连接时使用 # ...

  2. vue3 项目部署,Nginx配置https,重定向,详细流程

    文章目录 前情提要 应用场景 安装 使用 实战解析 最后 前情提要 一个web项目完成后,我们需要打包部署上线,关于打包的实战在我的vite专栏里已经有过一些实践,今天我们来实践一些部署的过程,当然部 ...

  3. 如何将本地python项目部署到服务器上_如何将本地的Django项目部署到云服务器

    如何将本地的Django项目部署到云服务器 开发环境 开发语言: Python 后台框架:Django 前端框架:bootstrap web服务器:nginx wsgi服务器:uwsgi 查看本地项目 ...

  4. Django项目部署在Centos7

    把Django项目部署在Centos7下 先有一个Django项目 一个员工管理系统(ems) 员工管理系统 使用VMware创建一个虚拟的Linux系统 Centos7下安装MySql5.7 详细安 ...

  5. Django项目部署(nginx1.18+uwgsi)

    Django项目部署: 9.1uwsgi 遵循wsgi协议的web服务器 9.1.1uwsgi的安装 pip install uwsgi 9.1.2uwsgi的配置 项目部署时,需要把settings ...

  6. 将Django项目部署到服务器

    将Django项目部署到服务器 效果 准备云服务器 服务器链接xshell 安装宝塔 进入宝塔 添加站点 打包本地django文件上传 宝塔面板安装python管理器 django配置文件 配置数据库 ...

  7. pipenv 虚拟环境 Django项目部署

    pipenv 虚拟环境 Django项目部署 1. 创建服务器 创建root 配置ssh 安装python3.7 pip3 ubuntu参考 https://blog.csdn.net/u014775 ...

  8. Django项目部署到阿里云服务器及后台常驻

    本文将记述如何简单的将自己的Django项目部署到阿里云服务器上. 准备条件: 阿里云服务器:centos 7.5 Nginx(反向代理) Python 3.7.3 Django 2.2+注意:cen ...

  9. linux 退出服务器_Vue实战091:Vue项目部署到nginx服务器

    项目开发完成之后我们就需要将项目上线运行供用户访问,这时候我们就需要将项目部署到服务器上.对于Vue这种前端Web项目我们一般都部署在linux系统上,Linux常见的Web应用服务器有Apache. ...

  10. vue项目部署到nginx

    vue项目部署到nginx 一.vue项目打包 修改config/index.js的assetsPublicPath为 ./(注意一定是build里面的,下面dev中也有这个配置) 这个路径的配置很重 ...

最新文章

  1. 基于poll实现的echo服务器
  2. 2018年安卓绿色联盟数据报告
  3. 常用的php开发工具有哪些?
  4. 29 个你必须知道的 Linux 命令
  5. linux 图片编辑 java_Java在Linux下 不能处理图形的解决办法 分享
  6. ASP.NET MVC 4 视图页去哪里儿
  7. Yum未完成事务问题
  8. 一分钟了解阿里云产品:弹性伸缩五大热点技术问题分析
  9. Eclipse中修改项目的文本字符集编码
  10. ONES 冯斌:从工程师到CTO,与不确定性和信息不完备为伴|ONES Talk
  11. 医疗相关计算机系统,智能医疗信息管理系统
  12. 测试开发大厂面试精选40题
  13. 正确的座机号码格式_固定电话的格式
  14. 马原复习思维导图-前三章
  15. JDK-8u131 软件安装教程
  16. 学术会议将变革?Hinton 呼吁 AI 界召开远程会议
  17. 商业模式-创新-增值价值
  18. 广东省第三届强网杯Writeup
  19. webService接口wsdl以byte[]方式上传附件
  20. Ubuntu16.04的安装教程

热门文章

  1. 矩阵特征值的数值解法
  2. QTTabBar 使用
  3. 最新Web前端经典面试试题及答案-史上最全前端面试题(含答案)
  4. 快速部署开源的 Java 博客系统 Tale
  5. 力士乐伺服电机编码器调零_伺服电机编码器安装拆卸方法
  6. NZT、AWZ这种一键新机软件原理详解!
  7. 天猫旺铺装修的一些特殊代码 【持续收集中...】
  8. 如何轻松查询分析多个快递单号物流到站派件延误件
  9. SVG和G语言的混合显示引擎
  10. 2022年应届毕业生求职简历模板:电子商务、销售、新媒体运营,80份毕业生个人简历模板