短版本 :你如何部署你的Django服务器? 什么应用程序服务器,前端(如果有的话,前端我的意思是反向代理)和操作系统,你运行它? 任何input将不胜感激,当谈到Python甚至更多的服务器pipe理员,我是一个新手。
长版本 :我正在服务器主机之间迁移,这么多周末…这并不是全部坏。 我有机会转向Django的一个不同的,可能更好的“部署”。
目前我正在通过Tornado的Wsgi接口使用Debian Lenny上的Nginx前端来使用Django。 我正在考虑进入Rackspace Cloud,因此在操作系统方面我已经给了很多select:
Debian 5.0(Lenny)
FC 11或12
Ubuntu 9.10或8.04(LTS)
CentOS 5.4
Gentoo 10.1
Arch Linux 2009.02
我收集的是这样的:
Linux发行版
Debian和CentOS发布软件的非bugfix更新非常缓慢,因为它们主要关注稳定性。 这是好还是坏? 我可以看到稳定性是一件好事,但事实上,我不能取代Python 2.4,而不是很头痛的Python 2.6是一种closures – 如果我这样做,然后我卡住了希望使用apt / yum来安装一个Python库(它将尝试重新安装Python 2.4)。
Ubuntu和Fedora似乎已经准备好了。 几乎已经准备好了,就像它已经完成的一切。 我喜欢修补东西,我更喜欢知道什么是安装的,它是如何configuration的,而不是用“cookie-cutter”设置来运行(没有任何意图,这只是描述我想说的最好的方式) 。 我一直在玩Fedora,我惊喜地发现pycurl,simplejson和其他一些库已经安装了, 这提出了问题,但是,还有什么安装? 我在一个非常小的VPS上运行一个紧凑的船,我更喜欢只运行我所需要的。
然后是Gentoo …我已经设法在我的桌面上安装Gentoo(几乎花了一个星期的时间),最后在我想做一些事情之后把它扔掉了,不得不花费45分钟时间用新的软件重新编译软件使用标志,所以我可以通过PILparsingPNG的。 我想知道,Gentoo对于像服务器这样的“静态”是有好处的吗? 我确切地知道我要在我的服务器上做什么,所以USE标志将会永远改变。 它优化了编译以适应你所要告诉的内容,除此之外 – 我可以在最小的RAM和硬盘空间上运行。 不过,我听说Gentoo在尝试更新软件时有一种趋势,那就是现在比其他任何事情都让我远离它。
我对Arch Linux一无所知。 任何意见在这个发行将不胜感激。
networking服务器
我一直在使用龙卷风,我可以放心地说,这是运行最大的麻烦。 自从我设置这个服务器的时候,我不得不编写自己的脚本来进行预编译,可能大概是Tornado用户基数的10%(不包括FriendFeed)。 我必须再设置另一个“看门狗”计划,以确保这些叉子不会不合时宜。 不错的是,它使用了大约40MB的RAM来运行我所有的Django站点中的7个; 我喜欢这个,我很喜欢。
我一直使用Nginx作为Tornado的前端,我可以在Django FastCGI工作人员面前运行Nginx,但是当你提高并发级别的时候,那些可靠性就没有Tornado的可靠性。 对我来说这不是一个真正的select,但我想我不妨把它列出来。
还有Apache,Djangobuild议你使用mod_wsgi。 我个人不太喜欢Apache,我知道它非常, 非常成熟,不像是Nginx和lighttpd。 Apache / mod_python甚至不是一个选项,因为我的内存非常有限。
认识Lighttpd! 这里不多说,我从来没有用过。 我听说你可以在Apache / mod_wsgi之前运行它,或者在Django FastCGI工作者之前运行它。 我听说它有less量内存泄漏问题,但我相信可以用cron工作解决。
我正在寻找的是您所看到的Django“最佳”部署,以满足您的需求。 任何关于我上面所说的内容的input或澄清都是值得欢迎的。
如果你想要一个轻量级的替代龙卷风,我会建议产卵 。 代码重装非常好,似乎有很好的表现 – 当然最好你自己试试。
我还建议supervisord不管操作系统,保持龙卷风或产卵实例启动和运行,以及任何其他基本服务。
然而,10倍的数据库是数据库的瓶颈,并且网络服务器的选择并不会真正影响网站的性能和可扩展性。
更新您的问题,删除不起作用的选择。 如果它具有Python 2.4,并且安装令人头疼,那就把它从列表中删除,然后更新问题以列出真正的候选者。 只列出实际符合您的要求的那些。 (你没有说你的要求是什么,但是最小的升级似乎很重要。)
抛硬币。
在两个满足您的要求的平台之间进行选择(您尚未确定),投掷硬币是最好的选择方式。
如果您不确定是否符合您的要求,那么列举您所看重的东西通常是件好事。 到目前为止,您似乎重视的唯一问题是“没有安装”。 除此之外,我只能猜测你实际上有什么要求。
一旦你确定了你正在寻找的功能集,随意抛硬币。
请注意,Linux发行版都具有或多或少相同的开源代码库。 选择其中之一是对现有Linux代码库的预集成元素进行打包,支持和选择。 只是扔硬币。
在网络前端选择完全是您需要什么功能的问题。 找到符合您的要求的所有网络前端,并投掷硬币在其中选择。
这些都不是“锁定”的决定。 如果你不喜欢你最初选择的linux发行版,你可以简单地选择另一个。 他们都有相同的应用程序和相同的API的基本套件。 选择只是一个偏好问题。
不喜欢你选择的网络服务器? 在mod_wsgi管道的末尾,它们看起来与你的Django应用程序相同(加或减几个配置更改)。 不喜欢lighttpd? 切换到Nginx或Apache – 你的Django应用程序不会改变。 所以没有锁定,也没有消极的后果做出次优的选择。
当没有下风险时,只要扔一个硬币。
在我租用服务器的地方,他们已经削减了Ubuntu的镜像到最低限度。 大概是因为他们不得不用一个正确的司机和其他的东西来制造一个特殊的形象,但是我不确定。 他们甚至删除了wget和nano。 所以,你得到了所有的apt-get善良,而不是一个“cookie-cutter”操作系统。
只是这样说是因为我想这就是几乎在任何地方都可以完成的方式,因此使用普通的ubuntu服务器进行安装并不能为您提供正确的信息来做出决定。
除此之外,我同意其他人的看法,那就是锁定不大,所以你可以尝试一下。
在Web服务器端,我建议看看切诺基,如果还没有这样做。 这可能不是你的杯子,但尝试它没有坏处。 我更喜欢Ubuntu和Cherokee的简单设置。 虽然我玩了很多东西,但是我更喜欢这些东西。 除了管理服务器,我还有其他的事情要做,所以任何帮助我做得更快的解决方案都是很好的。 如果这些项目主要是为了娱乐,那么这很可能不适用,因为你不会从这些易于设置的,很好的,非常有帮助的向导中获得大量的经验
就我个人而言,我发现其中一个BSD系统远远优于Linux发行版服务器相关的任务。 给OpenBSD或FreeBSD一个机会。 一旦你做了,你将永远不会回头。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。