为许多轻量级并发Keep-Alive http连接configurationlighttpd

我使用lighttpd作为我的基于自定义HTTP的应用程序服务器的前端代理。 我需要configurationlighttpd的大量(比如约5000)同时http连接有一个大超时和KeepAlive设置。 每个连接都会闲置。 想象一下基于HTTP的聊天服务器。

我的HTTP服务器正在使用http-push类似于Comet的交互(请参阅Wikipedia http://en.wikipedia.org/wiki/Comet_(programming) )。 具体来说,AJAX客户端发送一个GET请求,服务器不会立即回复。 而是服务器等待HTTPconnection打开,直到它需要用新状态消息客户端,然后将HTTP答复发送到GET请求。 客户端处理回复,并继续发送另一个GET请求,这再次,服务器将不会立即回答。

但是,为了这个问题,请求的确切性质是没有必要的。 所需要的实质上是一个lighttpdconfiguration,它允许同时打开大量的低带宽同时HTTP代理连接。

我如何configurationlighttpd 1.4.19。 我在Ubuntu 8.04下运行。 lighttpd代理请求到我的应用程序服务器以及我的Django后端。

  • 我只是简单地设置server.max-keep-alive-requests = 5000并且每天都这么叫?

  • 应该server.max-fds = 5000或更大的数字?

  • 有什么记忆考虑?

  • 也许我应该加强我的应用程序服务器,以便可以在没有lighttpd代理的情况下使用它(我没有那么自信,在没有可靠代理的情况下直接面向世界)。

据称lighttpd可以处理10,000个同时连接。 我怎么configuration它做这个数字的一​​半,其中大多数大部分闲置?

请记住,每个代理连接使用(至less)两个FD,一个到客户端,一个到被代理的服务器。 还要考虑〜5-50 FD的开销。

至于你的其他问题,我会说你需要在你的环境中testing你的应用程序,为你find最好的设置。

你需要Lighttpd-1.5.x(来自SVN)来做到这一点,因为1.4.x中的代理不会I / O复用1.4.x中的Lighttpd < – >后端通信位。

据我所知,我发现Lighttpd-1.5.x是唯一的反向代理能够做到这一点。

你想使用mod_proxy_coremod_proxy_backend_http ,并使用proxy-core.max-keep-alive-requestsproxy-core.max-pool-size (注意这些前缀是“proxy-core”,而不是“server”。 “): http : //redmine.lighttpd.net/projects/lighttpd/wiki/Docs : ModProxyCore

我已经testing了20 000个并发保持连接(Lighttpd < – >后端),它运行良好。