在生产环境中使用Django内置的Web服务器

pap*_*ane 15 django

我将在Linux机器上的生产环境中设置一个简单的Django应用程序.该应用程序的流量非常少 - 每天少于100页的负载.是否可以使用内置的Django网络服务器,或者我应该安装Apache和mod_wsgi?如果是这样,原因是什么?安全或许?

UPDATE

好吧很明显我不应该使用内置服务器.Apache的一些替代方案看起来很有趣.有没有一个更流行/更常用于Django?

S.L*_*ott 24

是否可以使用内置的Django网络服务器

没有.

我应该安装Apache和mod_wsgi吗?

是.

如果是这样,原因是什么?安全或许?

部分地.

更重要的是,小玩具Django服务器是单线程的,代码中的任何挂起都会挂起服务器.这意味着当两个用户几乎同时点击时,用户一个人的查询必须一直通过Django才能开始用户二的查询.

这将不得不包括桌面上非常慢的下载速度.

Apache(与所有替代品一样,lighttpd或nginx)是多线程的.事务中最慢的部分是从Apache下载到桌面.您不希望Python代码(和Django)以单线程方式处理它.即使只是少数用户.

另外,你不是Django服务静态媒体(即CSS和JS库文件).

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

  • “此外,您不知道 Django 为静态媒体(即 CSS 和 JS 库文件)提供什么服务。” - 为什么? (2认同)

Epe*_*eli 17

请勿在生产设置中使用此(内置Django Web服务器)服务器.它没有经过安全审核或性能测试.

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

但如果你不想,你就没有使用过Apache.你可以直接使用Spawning,Gunicorn等.

切诺基也很容易安装.


rew*_*ten 12

使用nginx + gunicorn.

Nginx:五行配置.Gunicorn:两行配置.这很简单有效.为了更好地控制,您可以使用supervisord生成gunicorn进程.

gunicorn和supervisord都可以使用pip进行安装,nginx几乎可以在默认包池中的任何发行版中使用.