线上环境如何部署 Django

2015-09-24 10:07:48 +08:00
 shiziwen

考虑到安全和运维方面,
请问大家是如何在线上部署 Django 项目的?( nginx + uwsgi + Django )
编译成 pyc 文件?

另外,结合 git ,如何做到自动化部署和回退?

有没有相关的解决方案可以参考,多谢。

7731 次点击
所在节点    Django
29 条回复
maemual
2015-09-26 14:38:10 +08:00
@julyclyde 这个确实值得吐槽
wushuiyong
2015-10-30 15:42:53 +08:00
看来大家都还不知道 Walle-瓦力,一个 web 部署系统工具,可能也是个持续发布工具,配置简单、功能完善、界面流畅、开箱即用!

支持 git 、 svn 版本管理,支持各种 web 代码发布,静态的 HTML ,动态 PHP ,需要编译的 JAVA 等。主要功能列表:
1.用户分身份注册、登录
2.开发者发起上线任务申请、部署
3.管理者审核上线任务
4.支持多项目部署
5.支持多项目多任务并行
6.快速回滚
7.项目的用户权限管理
8.部署前准备任务 pre-deploy (前置检查)
9.代码检出后处理任务 post-deploy (如 vendor )
10.同步后更新软链前置任务 pre-release
11.发布完毕后收尾任务 post-release (如重启)
12.执行 sql 构建(不要担心忘记测试环境 sql 同步)
13.线上文件指纹确认
14.支持 git 、 svn 版本管理

详见 github 项目地址: https://github.com/meolu/walle-web ,官方主页介绍: http://www.huamanshu.com/walle.html
shiziwen
2015-11-13 19:19:06 +08:00
@shenqi
感谢分享经验。

我这里有一个问题, dev 分支和 pro 分支,如果存在几个文件不同的情况应该如何处理?最典型的应该是配置文件。 dev 环境下和 pro 环境下的配置文件往往是不同的。

这种情况应该处理比较好,从而结合 git 做到自动化部署和回退?
shenqi
2015-11-14 12:27:45 +08:00
@shiziwen

product_settings.py 定义所有的 setting ,
dev_settings.py 进行覆盖,并且这个加入 ignore ,开发时候在进行写一个出来。
__init__.py 里面进行设置,引入 pro 的, 然后 try 引入 dev 的。
shiziwen
2015-11-17 00:26:34 +08:00
@virusdefender
gunicorn 的优势是什么?
shiziwen
2015-11-17 00:31:06 +08:00
@shenqi
多谢,
但是这样还是会经常在两个分支上进行 setting 文件的修改呀。
shenqi
2015-11-18 00:16:25 +08:00
@shiziwen dev 配置本地开发的, pro 配置产品的,都很简单,你只是走歪路了
zonghua
2016-03-18 00:57:56 +08:00
@shiziwen 配置 jian   dan
zonghua
2016-04-07 22:24:14 +08:00
@shenqi 启动的时候可以设置环境变量,指定设置模块

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/223266

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX