前记:最近在学习django项目的部署。

开发环境:windows10,使用pycharm,python2.7.15,django1.11。本地测试使用nginx和前端交互。

生产环境:centos7,linux中centos版本比较流行,因为centos7对主流软件更新得比较快,版本维护时间长,相对于ubuntu更适合用于生产环境。

项目可以通过文件拷贝,脚本上传,镜像转移放去服务器。我使用得是fabric脚本远程同步,其中脚本可以选择将gitlab的项目放到服务器,或者将本地压缩后传送到服务器解压,主要是要控制settings等涉及数据库不完全一致文件就不要覆盖。

dajngo项目在开发环境使用pip模块gunicorn来控制进程,实现多进程,在gunicorn启动后使用supervisor实现进程守护,记得在/etc下配置好对应文件配置,gunicorn的配置文件在项目根目录下修改配置(手动添加),最后使用nginx操作负载平衡,如果是假的域名,要自己修改使用测试客户机本地的hosts文件来进行域名访问,一般nginx都要限制ip直接访问,防止别人把无效域名挂靠在自己ip上,导致访问激增,服务器压力增大。

使用七牛的时候,服务器文件删除了,所以按照员工查询就不能下载,提示文件不存在,并不是生成的token过期秒有效链接,再次申请新的token链接未生成造成的。

使用xshell检查nginx,supervisor,gunicorn发现school_salary和自己创建的school_salary_2通过supervisorctl restart all不能跑起来8083,只跑起来了8093,以为是权限造成,其实是项目下的同名文件夹被我在/etc/nginx/conf.d/school_salary.conf修改时,不小心把school_salary的school_salary_2修改成了school_salary造成的,那个是wsgi的存放位置,不是项目名(项目名可能被修改)。

关于查询/打印薪水记录,不能直接遍历条目和员工,因为两个模型对象的有效性在当前可能已经发生改变,可以使用order_by(*args,**kwargs)实现双重排序,orm的方法

xshell远程连接终端很好用,pycharm的git也很好用,django官方文档很实用。

总结:

Fabric 是一个 Python (2.5-2.7) 的库和命令行工具,用来提高基于 SSH 的应用部署和系统管理效率。Tarfile是python自带的压缩模块,同款还有Zipfile。

开发机器上开发完的项目,有很多.idea,.git,*.pyc等无用文件,需要手动去除,我们可以选择性git到gitlab或者github,然后本地通过fabric脚本将git上的项目同步到服务器,需要修改settings等ip配置再去服务器修改,或者直接在本地项目,利用压缩,然后直接脚本发送到服务器,解压,再在服务器修改settings等配置即可。

遇到问题:os操作细节,tarfile筛选文件,我匹配*.pyc利用字符串的endswith()方法就行了,但是用字符串的startswith()方法不行,估计是因为在用tarfile模块的add()方法时加入文件和文件夹时,文件和文件夹是一样的,都由绝对路径表示,就好像"Linux下一切皆文件"。

2019/01/17 对django项目部署的学习的更多相关文章

  1. 2019/01/17 基于windows使用fabric将gitlab的文件远程同步到服务器(git)

    觉得django项目把本地更新push到gitlab,再执行fabric脚本从gitlab更新服务器项目挺方便的,当然从本地直接到服务器就比较灵活. 2019/01/17 基于windows使用fab ...

  2. Django项目部署在Linux下以进程方式启动

    Django项目部署在Linux下以进程方式启动 这是一篇关于如何在linux下,以后台进程的方式运行服务,命令改改基本上就通用了. 开发完Django项目后,需要把项目部署到linux环境下.当然, ...

  3. 使用gunicorn将django项目部署到生产环境的子目录下,在nginx后端获取客户真实IP地址

    生产环境有时,并不是为了一个项目而存在的.毕竟,域名是比较稀有的. 今天遇到这个问题,解决了.作个记录. 并且,如果将django项目部署在Nginx后面,那如何获取用户真实的IP地址呢? 下面就来解 ...

  4. Django项目部署(django+guncorn+virtualenv+nginx)

    一.说明 为了django项目部署到生产环境上,能够稳定的运行,且能够同时指出http和https的访问,对django的部署进行了一些研究,决定采用django + gunicorn + virtu ...

  5. django项目部署过程

    django项目部署过程 1.上传代码 用git或者其他工具,如scp 代码上传后保证每个应用下的migrations文件夹里只有一个__init__.py文件,自己的迁移文件不要上传上来,具体的gi ...

  6. Windows下django项目部署 通过Apache2.4+mod_wsgi

    经过几天踩坑,记录在Windows10下通过Apache2.4部署Django项目的过程 运行环境: 先说下环境,怎么安装倒是其次的,版本很重要,我是根据mod_wsgi的版本要求下载的各个版本(py ...

  7. 学习VirtualEnv和Nginx+uwsgi用于django项目部署

    以下叙述中用到的操作系统:Linux CentOS 6.X. 最近几天了解一下VirtualEnv,Apache+Daemon mode,Nginx+uwsgi的概念,并且在项目中实验性部署了一下(目 ...

  8. django 项目部署在 Apache 后, 设置二级域名(Apache虚拟主机 、 万网二级域名设置)

    上一篇文章简单说了怎么把django的项目部署到Apache上. 现在想弄个二级域名,也就是我原来有个域名 www.mysite.com,现在我想弄个 bbs.mysite.com ,该怎么做呢. 要 ...

  9. Django项目部署到Apache服务器

    本文讲述的是在阿里云服务器(ECS)上部署Django项目于Apache,服务器操作系统为ubuntu,公网Ip地址为123.56.30.151. 将Django部署到Apache服务器的原因 Dja ...

随机推荐

  1. Junit的套件使用

    定义一个类,在类的上方添加@RunWith(Suite.class)和@SuiteClasses({XX.class,YY.class,...}) 实例有两个类分别为:public class Log ...

  2. nohup 让进程在后台可靠运行的几种方法

    1. nohup nohup 无疑是我们首先想到的办法.顾名思义,nohup 的用途就是让提交的命令忽略 hangup 信号. nohup 的使用是十分方便的,只需在要处理的命令前加上 nohup 即 ...

  3. Winform选择目录路径与选择文件路径

    https://blog.csdn.net/zaocha321/article/details/52528279 using System.Collections.Generic; using Sys ...

  4. PTA 根据后序和中序遍历输出先序遍历(25 分)

    7-1 根据后序和中序遍历输出先序遍历(25 分) 本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果. 输入格式: 第一行给出正整数N(≤30),是树中结点的个数.随后两行 ...

  5. 4、keepalived高可用nginx负载均衡

    keepalived: HTTP_GET        //使用keepalived获取后端real server健康状态检测 SSL_GET(https)  //这里以为这后端使用的是http协议 ...

  6. BZOJ 1061: [Noi2008]志愿者招募(线性规划与网络流)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1061 题意: 思路: 直接放上大神的建模过程!!!(https://www.byvoid.com/z ...

  7. PHP feof()函数

    feof()函数检查是否已经到达文件末尾(EOF) EOF == end  of  file 如果出错或者文件指针到了文件末尾(EOF)则返回true,否则返回false 语法: feof(file) ...

  8. C# 委托例子

    两个子窗口向一个主窗口发送信息 主窗口: using System; using System.Collections.Generic; using System.ComponentModel; us ...

  9. React创建组件的三种方式及其区别

    内容转载于http://www.cnblogs.com/wonyun/p/5930333.html React推出后,出于不同的原因先后出现三种定义react组件的方式,殊途同归; 具体的三种方式: ...

  10. Educational Codeforces Round 23 E. Choosing The Commander trie数

    E. Choosing The Commander time limit per test 2 seconds memory limit per test 256 megabytes input st ...