2019/01/17 对django项目部署的学习
前记:最近在学习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项目部署的学习的更多相关文章
- 2019/01/17 基于windows使用fabric将gitlab的文件远程同步到服务器(git)
觉得django项目把本地更新push到gitlab,再执行fabric脚本从gitlab更新服务器项目挺方便的,当然从本地直接到服务器就比较灵活. 2019/01/17 基于windows使用fab ...
- Django项目部署在Linux下以进程方式启动
Django项目部署在Linux下以进程方式启动 这是一篇关于如何在linux下,以后台进程的方式运行服务,命令改改基本上就通用了. 开发完Django项目后,需要把项目部署到linux环境下.当然, ...
- 使用gunicorn将django项目部署到生产环境的子目录下,在nginx后端获取客户真实IP地址
生产环境有时,并不是为了一个项目而存在的.毕竟,域名是比较稀有的. 今天遇到这个问题,解决了.作个记录. 并且,如果将django项目部署在Nginx后面,那如何获取用户真实的IP地址呢? 下面就来解 ...
- Django项目部署(django+guncorn+virtualenv+nginx)
一.说明 为了django项目部署到生产环境上,能够稳定的运行,且能够同时指出http和https的访问,对django的部署进行了一些研究,决定采用django + gunicorn + virtu ...
- django项目部署过程
django项目部署过程 1.上传代码 用git或者其他工具,如scp 代码上传后保证每个应用下的migrations文件夹里只有一个__init__.py文件,自己的迁移文件不要上传上来,具体的gi ...
- Windows下django项目部署 通过Apache2.4+mod_wsgi
经过几天踩坑,记录在Windows10下通过Apache2.4部署Django项目的过程 运行环境: 先说下环境,怎么安装倒是其次的,版本很重要,我是根据mod_wsgi的版本要求下载的各个版本(py ...
- 学习VirtualEnv和Nginx+uwsgi用于django项目部署
以下叙述中用到的操作系统:Linux CentOS 6.X. 最近几天了解一下VirtualEnv,Apache+Daemon mode,Nginx+uwsgi的概念,并且在项目中实验性部署了一下(目 ...
- django 项目部署在 Apache 后, 设置二级域名(Apache虚拟主机 、 万网二级域名设置)
上一篇文章简单说了怎么把django的项目部署到Apache上. 现在想弄个二级域名,也就是我原来有个域名 www.mysite.com,现在我想弄个 bbs.mysite.com ,该怎么做呢. 要 ...
- Django项目部署到Apache服务器
本文讲述的是在阿里云服务器(ECS)上部署Django项目于Apache,服务器操作系统为ubuntu,公网Ip地址为123.56.30.151. 将Django部署到Apache服务器的原因 Dja ...
随机推荐
- Eclipse使用maven命令安装第三方jar包
使用原因: 使用maven时,有些第三方jar包是不能从maven远程仓库中下载得到,因此导致在pom.xml中添加jar包依赖时会怎么添加都会报错(Missing artifact ojdbc:oj ...
- ODAC(V9.5.15) 学习笔记(一)总论
一直在使用ODAC做开发,没时间仔细研究一下,目前采用的是3层结构,ODAC+TDataSetProvider+TClientDataSet做数据处理,也没有多大问题.下一步要开发B/S的程序了,打算 ...
- Linux 题目收集
目录 1.库函数,系统调用,用户态及内核态 2.查看进程,杀死进程 3.查看文档 4.scp命令 5.不在 sudoers 文件中.此事将被报告 6.chmod: 更改"minikube&q ...
- How to check if one path is a child of another path?
How to check if one path is a child of another path? Unfortunately it's not as simple as StartsWith. ...
- 集合01_List
List集合总览 元素有序,可重复,可通过索引访问 增加了通过索引操作集合的方法,如: Object get(int index) Object remove(int index) void sort ...
- (转) AdversarialNetsPapers
本文转自:https://github.com/zhangqianhui/AdversarialNetsPapers AdversarialNetsPapers The classical Pap ...
- OpenCV学习一《Linux下安装OpenCV》
第一步:安装源码前先安装好需要的第三⽅方环境 需要的编译环境■ [compiler] sudo apt-get install build-essential # 注释说明 64位ubuntu在安装 ...
- Keepalived笔记
Keepalived高可用服务对之间的故障切换转移,是通过 VRRP (Virtual Router Redundancy Protocol ,虚拟路由器冗余协议)来实现的. VRRP的出现是为了解决 ...
- ZooKeeper分布式过程协同技术详解2——了解ZooKeeper
这个服务如何实现这些协作方面的原语? ZooKeeper基础
- pgAdmin的数据导入之CSV
在向数据库批量导入数据时,可以参考此过程 1.对于现有的Excel文件,首先应另存为 .csv文件,记住分割符(逗号分割),在后边导入用到. 2.用记事本打开保存后的csv文件,以utf-8格式另存为 ...