部署Django(nginx+uwsgi+supervisior)

本文详细介绍了如何在Ubuntu 16.04上部署Django项目,包括配置Python环境、安装和配置nginx、uwsgi以及supervisord。重点强调了静态文件的处理、uwsgi配置文件的创建和supervisord的使用,以确保项目在生产环境中的稳定运行。
摘要由CSDN通过智能技术生成
虽然在开发时runserver 命令也可让服务器启动,但是毕竟不适合生产环境,因此,在部署项目时就要采用新的方式。

本次项目在ubuntu 16.04系统上进行部署。部署时,注意配置防火墙,放开对应端口,当然,也可直接关闭防火墙。
假设现在已经有一个名为webnote的项目。部署前,请先确认静态文件已收集完成,且设置了debug=False(关于静态文件部分在我之前的文章中已经讲过,这里附上链接)
Django中静态文件之各个配置详解
Django如何正确加载静态文件

一,配置项目所需python环境
1.在本地开发环境上执行命令,导出开发时依赖的所有包
   #文件名可以随便取
   $  pip freeze >req_list.txt
2.通过ftp或git将项目的代码和req_list.txt同步到Ubuntu系统中
   #方法有很多,这个不是本文的重点,这里不做演示
  • 这里注意文件夹的权限
   #进入当前项目所在目录,并给该文件夹赋予权限,为了方便,直接赋值777
   $sudo chmod -R 777 ./webnote
3.在Ubuntu上创建虚拟环境,并安装所有包
    #创建一个名为py3_django的虚拟环境(如果想使用的Ubuntu本机的环境,就跳过前两个步骤)
    #(关于如何安装虚拟环境不是本文重点,不进行演示)
    $ mkvirtualenv py3_django  
    #进入虚拟环境
    $ workon py3_django
    #在虚拟环境中安装所有依赖包
    $ pip install -r req_list.txt
  • 注意:如果你在开发时就直接连接的linux的数据库,则此次部署时,无需数据库同步。否则要先在linux系统上创建一个同名数据库,然后把项目中每个app对应下的migrations文件夹下的数据迁移部分给删除,然后分别执行python manage.py makemigrationspython manage.py migrate。当然,你也可以直接导出开发时的数据库文件,然后再把数据导入到linux系统的数据库中。
二,nginx
  • nginx作为前端web服务器,处理静态资源,然后将非静态资源请求转发给uwsgi处理,编辑nginx的配置文件,在server中增加以下内容:
    server {
   
        listen       80;
        server_name  localhost;

        location / {
   
           #将所有的参数转到uwsgi下
           include uwsgi_params
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值