尝试用gunicorn替代supervisord部署python项目

2012-04-24 13:45:24 +08:00
 muxi
gunicorn确实是一个不错的项目,让人少呼出不少二氧化碳,supervisord最大的问题是修改了配置需要kill进程,多个进程,多项目部署在同一个机器的时候需要写N多重复的配置, gunicorn 能更优雅的解决这些问题

http://gunicorn.org
8008 次点击
所在节点    Python
15 条回复
lfeng
2012-04-24 14:00:08 +08:00
mark,好像不错的样子,试试看先~
wenbinwu
2012-04-24 14:06:38 +08:00
我是用gunicorn跑django
sentry之类的服务用supervisord
magicshui
2012-04-24 14:32:03 +08:00
记得前两天在QCon上看到豆瓣说他们就是使用的gunicorn
spritevan
2012-04-24 15:33:27 +08:00
@muxi
supervisordctrl 里面貌似可以 reload 配置文件的吧?
如果设置了 autostart = true 就会自动重启
多个类似进程也能使用 group 来设定
比如:

[group:app]
programs=web,api

[program:web]
command=python /var/app/web.py -port=896%(process_num)s
process_name=%(program_name)s-896%(process_num)s
numprocs=4
numprocs_start=0

[program:api]
command=python /var/app/api.py -port=896%(process_num)s
process_name=%(program_name)s-896%(process_num)s
numprocs=4
numprocs_start=4

上面这个配置就可以启动以 0-3, 4-8 作为端口号结束的两组一共八个 web/api 进程了

reference
http://supervisord.org/configuration.html#group-x-section-settings
clino
2012-04-24 15:34:23 +08:00
"Green Unicorn' is a Python WSGI HTTP Server for UNIX" 看起来是和 uwsgi 作用一样的阿,怎么和 supervisord 放在一起比较?
linnchord
2012-04-24 15:45:35 +08:00
uwsgi应该更好一些,性能略好,配置更简便。
muxi
2012-04-24 16:02:06 +08:00
@spritevan 感谢,是我疏忽了文档
wayhome
2012-04-26 16:04:07 +08:00
reload会把所有服务重启,用update命令更好,只更新对应的配置,并根据配置启动服务
reus
2012-04-26 16:16:22 +08:00
@clino features里有Automatic worker process management
Zjinys
2012-04-26 17:18:39 +08:00
这2个确实没有什么可比性吧
clino
2012-04-26 21:31:50 +08:00
@reus 听上去"Automatic worker process management"这种功能uwsgi也有吧...
waylybaye
2012-04-26 21:38:11 +08:00
> supervisord最大的问题是修改了配置需要kill进程,多个进程
use supervisorctl update

另外这俩确实不是同一类东西啊。就像拿cPanel 和 apache 比一样。
dndx
2012-04-26 21:42:19 +08:00
现在基本上跑WSGI,小项目用tornado,大项目用gevent
对uwsgi无爱,蛋疼的配置文件写起来一点也不Pythonic
supervisord只是进程管理工具,你用supervisord跑什么是你的事,所以它跟WSGI Container其实是没可比性的,根本不是一类东西
jerry
2012-04-27 16:11:22 +08:00
supervisord 最不喜欢是 restart all会 stop all然后 start all, 如果有一个进程卡在stoping,所有进程都不会 start,我的tornado放4个端口,这样会造成用户会碰到Bad Gateway。只能一个一个restart,麻烦
ipconfiger
2013-01-20 13:27:09 +08:00
@jerry 写了个shell脚本来一个个重启就不麻烦了

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

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

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

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

© 2021 V2EX