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 ...
随机推荐
- Qt Quick Dialogs
一.如下图.. 二. 1.FileDialog //定义FileDialog{ id:fileDialog; title: "open a picture"; nameFilter ...
- Python3 tkinter基础 Canvas create_rectangle 画虚边的矩形 create_oval 画椭圆形 圆形
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- Python3基础 list reverse 反转列表
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- repo forall -c 用法【转】
本文转载自:https://blog.csdn.net/u010164190/article/details/78332484 .repo forall命令 # repo forall -help # ...
- JPush Flutter Plugin(Futter推送-极光推送)
https://pub.flutter-io.cn/packages/jpush_flutter JPush's officially supported Flutter plugin (Androi ...
- Docker 入门指南——Dockerfile 指令
COPY 复制文件 格式: COPY [--chown=<user>:<group>] <源路径>... <目标路径> 源路径可以是多个,甚至可以使通配 ...
- Minikube 安装
安装Minikube 在容器编排工具中安装配置最复杂的就是Kubernetes,想要运行一个简单的容器集群环境,对于没有使用过Kubernetes的人来说,需要花费一定的时间去理解各组件的概念和功能, ...
- 未能加载文件或程序集“System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKe
https://bbs.csdn.net/topics/392046946 电脑没安装mvc4,应该是,解决这个问题一上午了今天,然后装完了后就好了! https://www.microsoft.co ...
- 引入jquery利用Vue生命周期的钩子函数mounted操作DOM
html <div id="app"> <div>{{message}}</div> </div> js var vm = new ...
- Gitflow 视频讲解
How to use a scalable Git branching model called Gitflow git视频合集列表 github大本营 gitflow中文备忘清单 ...