Django轻量级Web服务器,工作量小

我正在Django上编写一个小应用程序,这个应用程序将被用作通常由文本文件configuration的一组应用程序的pipe理界面。 它不会做太多的事情(parsing用户input,将数据库条目转换为平面文件,并显示带有信息的漂亮表格),而且最有可能一次最多由一个用户使用。

唯一的限制是它运行的服务器是低configuration的(Pentium M 1,8GHz,512MB RAM),我希望它的大部分计算能力可用于托pipe应用程序,而不是pipe理界面。 为了logging,我正在使用CentOS 5。

我可以使用什么networking服务器? 到目前为止,我收集了以下选项和意见:

  • Apache可能对这种部署很大
  • lighttpd + FCGI – 可能不稳定
  • lighttpd / nginx作为rev proxy + django web服务器 – 看起来很奇怪,因为我以为django web服务器是为了开发/debugging目的

你能推荐我一个很好的解决scheme吗? 我并没有把注意力集中在很大的工作负载或并发性上(因为大多数人提出类似的问题),我只是希望它在空闲或单个会话时尽可能less地使用RAM和CPU时间。

此外,请注意,我没有太多的networking服务器部署,反向代理等经验(虽然我知道的基本知识,可以find我的方式与谷歌),所以我会很感激有经验的人的帮助有这样的问题。

在我看来,最简单的解决scheme之一就是nginxgunicorn

对于“gunicorn”,你只需要做一些事情:

 $ cd path/to/yourdjangoproject $ gunicorn_django --workers=4 

而且这是一个非常标准的nginx设置

 server { ... location / { proxy_pass http://127.0.0.1:8000; break; } } 

肯定比使用fcgi更好,并且取决于flup,但是如果你不介意让你的手脏,我build议你尝试nginx + uwsgi作为zaub3r3rbuild议。

考虑到你缺乏经验和macros伟的pipe理GUI,我build议切诺基 。 一个快速,易于使用的Web服务器,内置向导,用于configurationDjango项目。

使用Apache并禁用不需要的模块,并确保不会产生太多的stream程。

Apache的核心在某种程度上是重量级的想法,这有点神话 – 由于采用模块化devise,它可以像您需要的那样强壮或轻便。

这与您现有的分发打包和更新系统一起工作的额外好处。

PS:当应用程序正在运行,但是networking服务器的pipe理界面没有被访问时,操作系统会高兴地将未使用的页面换成磁盘。 信任操作系统,以便在需要的时候保持常驻用户的需求。

PPS:2GB DIMM的成本低于您input此查询的时间。 花些时间对你的问题做一些元分析。

在我看来,non + plus解决scheme是nginx + uwsgi(设置起来有点困难,因为你必须自己编译并configuration更多)。 最简单和推荐的是Apache + mod_wsgi。 我认为configuration正确的Apache2 mod_wsgi是你的正确select。

Django(Python)+networking服务器? 然后也许看看龙卷风 (虽然它可以处理远远超过你想要的)。