From: Eric Wong on 29 May 2010 02:59 Rainbows! is an HTTP server for sleepy Rack applications. It is based on Unicorn, but designed to handle applications that expect long request/response times and/or slow clients. For Rack applications not heavily bound by slow external network dependencies, consider Unicorn instead as it simpler and easier to debug. Of course, if you find Unicorn too mainstream these days, then give Rainbows! a try! It's the bestest web server (EVAR) with a bang in its name! * http://rainbows.rubyforge.org/ * rainbows-talk(a)rubyforge.org * git://git.bogomips.org/rainbows.git Changes: In our race to have more concurrency options than real sites using this server, we've added two new and fully supported concurrency models: WriterThreadSpawn and WriterThreadPool They're both designed for serving large static files and work best with IO.copy_stream (sendfile!) under Ruby 1.9. They may also be used to dynamically generate long running, streaming responses after headers are sent (use "proxy_buffering off" with nginx). Unlike most concurrency options in Rainbows!, these are designed to run behind nginx (or haproxy if you don't support POST/PUT requests) and are vulnerable to slow client denial of service attacks. I floated the idea of doing something along these lines back in the early days of Unicorn, but deemed it too dangerous for some applications. But nothing is too dangerous for Rainbows! So here they are now for your experimentation. -- Eric Wong
|
Pages: 1 Prev: Source Code for puts(..) Next: 1.9.3 Encoding Error w/ compressed data http request header |