2010-04-24 60 views
3

我需要一个将用于静态文件服务/上传的可伸缩且高性能的HTTP应用程序/服务器。所以我只需要支持GETPUT操作。用于静态内容的轻量级HTTP应用程序/服务器

不过,也有我需要一些额外的功能:

  • 自定义身份验证:我需要 支票凭证对每个请求的数据库。因此,我必须能够整合专有数据库交互 。
  • 支持 签名的接入键:通过PUT到 资源的访问应该使用像http://uri/?key=foo A键则包含了如MD5的要求,让我阻止不需要的请求信息(用户+通道+秘密)签署 。应用程序/服务器应该允许我检查这个。
  • 表现:我想尽可能避免管道内容。否则,整个应用程序可以在Perl/etc中实现。在CGI的几行中。

Perlbal(的Web服务器模式)看起来不错,但单线程模型不适合我的数据库查找,它也不支持查询字符串。

Lighttp/Nginx/...有一些模块用于这些任务,但将所有内容放在一起而不写出自己的扩展/模块是不可行的。

那么你会如何解决这个问题?是否有其他的轻量级网络服务器可用于此? 我应该在web服务器(即CGI)中实现一个应用程序吗?如何避免/加快网络服务器与我的应用程序之间的管道内容。

在此先感谢!

回答

4

看一看的NodeJS http://nodejs.org/

有静态Web服务器和数据库接口几个模块: http://wiki.github.com/ry/node/modules

您可能需要编写自己的文件上传处理程序,或使用一个从这个例子

+0

起初我对使用JavaScript编写服务器组件有点怀疑,但是node.js似乎很有趣。谢谢! – 2010-04-25 10:32:43

3

nginx + spawn-fcgi + fcgi使用C + memcached + sqlite编写的应用程序可以很好地处理类似的任务,对于来自同一本地网络的小数据和快速连接,延迟大约为20-30毫秒。据我所知,生产服务器每秒处理大约100-150个请求,没有问题。在测试服务器上,我每秒达到20k个请求,再次没有问题,平均延迟约为60毫秒。积极的缓存和UNIX域套接字是关键。

不知道如何配置将频繁PUT请求,在我们的任务,他们是非常罕见的,通常批处理。

相关问题