2011-02-01 85 views
8

我要建立在生产环境中一个简单的Django应用程序运行在Linux中。该应用的流量非常少 - 每天不到100页的加载量。是否可以使用内置的Django网络服务器,或者我应该安装Apache和mod_wsgi?如果是这样,这是什么原因?安全也许?使用Django的内置网络服务器在生产环境中

UPDATE

OK很显然我不应该使用内置的服务器。 Apache的一些替代品看起来很有趣。也许有一种更受欢迎/更频繁地与Django一起使用?

回答

13

不要在生产环境中使用此服务器(内置的Django网络服务器)。它没有经过安全审计或性能测试。

http://docs.djangoproject.com/en/dev/ref/django-admin/#runserver-port-or-address-port

但是你没有使用Apache,如果你不想。您可以直接使用Spawning,Gunigorn

Cherokee也很容易设置。

+0

确定这很清楚谢谢你? – paperplane 2011-02-01 20:52:56

+0

@paperplane是:) – Epeli 2011-02-01 20:54:42

+1

你绝对不想使用内置的网络服务器。如果你不想搞乱“重”的Apache安装,你可以看看lighttpd(http://docs.djangoproject.com/en/dev/howto/deployment/fastcgi/?from=olddocs#lighttpd-setup )或nginx(http://code.djangoproject.com/wiki/DjangoAndNginx) – bhamby 2011-02-01 20:57:21

16

是不是好使用内建的Web服务器的Django为此

我应该安装Apache和mod_wsgi的?

是。

如果是这样,是什么这方面的原因?安全也许?

晴。

更重要的是,小玩具Django的服务器是单线程的,并在代码中任何挂起挂起服务器。这意味着,当两个用户同时点击差不多,一个用户的查询必须走一路过关斩将Django的用户二的查询之前,甚至可以开始。

,这将有包括疯狂缓慢的下载速度到桌面。

Apache(像所有的替代品,lighttpd或nginx)是多线程的。最慢的部分是从Apache下载到桌面。您不希望Python代码(和Django)以单线程方式处理此问题。即使只有少数用户。

而且,你也不是什么Django的服务静态媒体(即,CSS和JS库文件。)

在您的应用程序不会影响整个系统的吞吐量,如果Apache和mod_wsgi的是在一个单一的慢点地点。一个请求的输出页面可以与其他用户的输出并行缓慢下载到PC桌面。

2

内置的Django服务器不是为生产而构建的。有很多原因,主要是安全性和效率。 推荐的方法是使用文档中涵盖的mod_wsgi here

9

使用nginx + gunicorn。

Nginx:五行配置。 Gunicorn:两行配置。这很容易和有效。为了更好地控制,你可以使用supervisord产生gunicorn进程。

gunicorn和supervisord都可以使用pip进行安装,并且nginx几乎适用于默认软件包池中的任何发行版。

相关问题