我正在用Django构建一个web应用程序。我选择Django的原因是:

我想使用免费/开源工具。 我喜欢Python,觉得它是一种长期的语言,而对于Ruby,我不确定,而PHP似乎是一个巨大的麻烦。 我正在为一个想法构建一个原型,并没有过多地考虑未来。开发速度是主要因素,而且我已经了解Python。 我知道迁移到谷歌应用程序引擎将更容易,如果我选择这样做在未来。 我听说Django很“不错”。

现在我越来越接近于考虑出版我的作品,我开始担心规模问题。我找到的关于Django伸缩能力的唯一信息是Django团队提供的(我不是说什么要忽略它们,但这显然不是客观的信息…)

我的问题:

目前在Django上构建的“最大”站点是什么?(我主要通过用户流量来衡量规模) Django能每天处理10万名用户,每个用户访问站点几个小时吗? 像Stack Overflow这样的站点可以在Django上运行吗?


当前回答

我相信你正在寻找一个更可靠的答案,但我能想到的最明显的客观验证是谷歌推动Django与它的应用程序引擎框架一起使用。如果有人了解并经常处理可伸缩性,那就是谷歌。据我所知,最大的限制因素似乎是数据库后端,这就是为什么谷歌使用他们自己的…

其他回答

如果您的站点包含一些静态内容,那么在前面放置一个Varnish服务器将极大地提高您的性能。即使是一个盒子也能轻易产生100 Mbit/s的流量。

注意,对于动态内容,使用像Varnish这样的东西变得更加棘手。

看看这个叫做EveryBlock的微型新闻聚合器。

它完全是用Django编写的。事实上,正是他们开发了Django框架本身。

你完全可以用Django运行一个高流量的站点。看看这篇在django 1.0之前但仍然相关的文章:http://menendez.com/blog/launching-high-performance-django-site/

前几周我参加了EuroDjangoCon会议,这是几个演讲的主题——其中包括最大的django网站Pownce的创始人(幻灯片来自其中一个演讲)。主要的信息是,你不必担心Django,而是像适当的缓存,负载平衡,数据库优化等。

实际上,Django已经为这些事情提供了钩子——尤其是缓存,它变得非常简单。

目前在Django上构建的“最大”站点是什么?(我主要通过用户流量来衡量规模)

在美国,是Mahalo。我听说他们一个月要处理大约1000万份。现在,在2019年,Mahalo由Ruby on Rails支持。

在国外,Globo网络(巴西的新闻、体育和娱乐网站网络);Alexa将它们排在全球前100名(目前大约排在第80位)。

其他著名的Django用户包括PBS、国家地理、探索、NASA(实际上是NASA内部的许多不同部门)和国会图书馆。

Django能处理每天10万用户,每个用户访问站点几个小时吗?

是的——但前提是您编写了正确的应用程序,并且有足够的硬件。Django不是灵丹妙药。

像StackOverflow这样的网站可以在Django上运行吗?

是的(但请参见上文)。

在技术方面,很容易:请参阅soclone。在流量方面,compete将StackOverflow固定在每月100万次以下。我能说出至少十几个流量超过SO的Django站点。