关于django部署至生产系统的一次记录

本人从事python开发相关的工作,故选择django框架进行开发。最近为公司开发了一套内部使用的展示系统,因为在部署测试时碰到一系列问题,故记录此次的部署操作流程,希望能与大家互相交流。

环境说明

  • 系统:centos6.7
  • python版本:python3.5.5
  • Django版本:1.11.8
  • uwsgi
  • nginx:1.14.*

第一步:测试代码本地运行状况

  1. 当代码已经开发完成之后,请将项目通过ftp或者git的方式上传到服务器上,细节不赘述。
  2. 配置好相应的虚拟环境(virtualenv),这是操作习惯,建议使用虚拟环境,尤其是在生产系统中,因为这台服务器可能不止运行一个项目。
  3. 执行python manage.py runserver,测试开发状态下前台与后台访问是否正常。
    • 如果此步骤有异常,请自行调整。切勿往下操作。

第二步:配置uwsgi服务

关于uwsgi的原理,网络上有大量的资料可以查询,细节不赘述。

使用 ini配置文件的方式运行uwsgi服务,至于xml的未测试

  1. 安装uwsgi

    (webenv) [root@localhost alice]# pip install uwsgi
    
  2. 配置ini文件

  • 该文件存放位置随意。本人存放在/etc下

    (webenv) [root@localhost alice]# more /etc/uwsgi8000.ini    # 运行在虚拟环境下
    [uwsgi]
    # Django项目实际访问端口
    socket = :8000
    
    # 项目根目录位置
    chdir = /var/www/html/yourproject
    
    # wsgi.py文件在项目的中的相对位置,其中yourproject为settings.py的上级目录
    wsgi-file = yourprojetc/wsgi.py
    
    # 配置wsgi模块,其中yourproject为settings.py的上级目录
    module =yourapp.wsgi
    
    # 进程设置,无需变动
    
    # 开启主线程
    master = true
    
    # 最多启动1个uwsgi进程
    processes = 1
    
    # 当服务器退出的时候自动清理环境,删除unix socket文件和pid文件
    vacuum = true
    
    # 配置进程文件
    pidfile=/var/run/uwsgi.pid
    
    # 配置服务日志路径
    daemonize=/var/log/uwsgi.log
    

第三步:nginx配置

安装不赘述可参考该博客
安装出现的问题可以参考该博客

  1. 配置文件(主要是server中的内容,注释掉默认)

    server {
            listen 8080;
            server_name localhost;
            # 加载静态页面
            location /static/ {
                alias /var/www/html/yourproject/static/;
            }
    
            location / {
                include  uwsgi_params;
                uwsgi_pass  127.0.0.1:8000;
            }
        }
    
  2. 启动服务

第四步:测试页面访问

实际部署时:

  • 前台页面访问正常。
  • 后台出现css样式加载失败,使用的django默认后台

解决方案:

  • 方案一:按照网上的 python manage.py collectstatic 未能解决

  • 方案二:将django默认后台的静态文件拷贝至项目目录中的static目录下即可,问题解决。

    默认后台的静态文件目录在虚拟环境下的site-packages下,请自行查找,参照下面的路径

    cp -r /your_virtualenv_dir/lib/python3.5/site-packages/django/contrib/admin/static/admin
    /var/www/html/yourproject/static/
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值