This concurrency model implements a single-threaded app dispatch with a separate thread pool for writing responses.
Unlike most Rainbows! concurrency models, WriterThreadPool
is designed to run behind nginx just like Unicorn
is. This concurrency model may be useful for existing Unicorn
users looking for more output concurrency than socket buffers can provide while still maintaining a single-threaded application dispatch (though if the response body is dynamically generated, it must be thread safe).
For serving large or streaming responses, using more threads (via the worker_connections
setting) and setting "proxy_buffering off" in nginx is recommended. If your application does not handle uploads, then using any HTTP-aware proxy like haproxy is fine. Using a non-HTTP-aware proxy will leave you vulnerable to slow client denial-of-service attacks.
mail archives: https://yhbt.net/rainbows-public/ http://ou63pmih66umazou.onion/rainbows-public/ nntp://news.public-inbox.org/inbox.comp.lang.ruby.rainbows nntp://ou63pmih66umazou.onion/inbox.comp.lang.ruby.rainbows nntp://news.gmane.io/gmane.comp.lang.ruby.rainbows.general public: rainbows-public@yhbt.net source code: git clone https://yhbt.net/rainbows.git torsocks git clone http://ou63pmih66umazou.onion/rainbows.git