我需要一个Web服务器来提供非常简单的POST/GET请求作为JSON.我不需要MVC,Rails,Django.我需要一些占用很少内存的东西,最好只需要5K左右.网络服务器将使用Facebook Thrift与Scribe等后端服务进行通信.每个http请求还将访问SQLLite数据库,每个用户一个,用户的数据不重叠.它将提供静态html文件以及json webservice.
我正在考虑以下事项:
Njinx与PHP,
来自Lua的Kepler,
用libevent或libev滚动我自己,或许叫到Lua,或者
受Mochiweb.
哪些选项最好,还有哪些其他选项?我可以使用PHP,python或Lua进行基本脚本编写,甚至可以使用基本的C.我倾向于使用某种Erlang解决方案.
我对nginx(http://nginx.net/)有过很好的体验,他说,在选择网络服务器时,你应该仔细查看你的要求并做出明智的决定,因为这些事情可能非常具体.
你会注意到在这个问题中很多人都推荐g-wan,Webmachine等等......这些都是你应该看的东西和基准,以确定它们是否更快适合你的用例.
这是一种鼓励啦啦队的问题,没有"正确答案".
作为Webmachine的作者之一,我很乐意帮助你.我跟进的一个原因是,尽管Webmachine中没有与JSON相关的代码,但您可能会发现我们每天都使用它来处理许多不同的JSON请求和响应.它简单,干净,可扩展,性能相当好.
如果您只是想要静态交付,那么像nginx或lighttpd这样的东西将是一个明显的方法.对于混合的静态和动态请求以及内置的良好Web行为,您可能会发现Webmachine非常适合.
有关详细信息,请查看http://code.google.com/p/webmachine/wiki/ExampleResources上的简单示例代码以及http://blog.therestfulway.com/上博客上的最新帖子.
它对我们来说效果很好; 如果您有任何问题,请随时给我留言.
Cherokee网站服务器,网址为www.cherokee-project.com
要测量占用空间,请查看可执行文件大小(不要忘记共享库).
TrustLeap G-WAN(150 KB,无依赖项)提供Java,C/C++,Objective-C和D脚本.
根据这些基准测试,它比Nginx或Lighttpd使用更少的内存和CPU资源,同时运行速度更快:
http://www.gwan.ch/benchmark
Lighttpd具有极好的占用空间,大部分内存可能会被你选择使用的任何语言占用(除非你选择C路线,这是不推荐的).
IBM developerWorks上有一篇文章,其中包含大量"轻量级"Web服务器:
轻量级Web服务器:http://www.ibm.com/developerworks/web/library/wa-ltwebserv/
Mochiweb超轻量,处理愚蠢的高负荷.