While I bet it is not encountered too often, there is a bug existing
between NginX and Ebb. Most frameworks (Rails, Merb, Sinatra,
others?..) pass a string as the final(body) element of their Rack
response. Rack merely requires that the body respond to :each by
yielding strings. When and array (or something more complex) is passed
to Ebb as the body, it sets ‘Transfer-Encoding: chunked’ and then sends
each yielded value as a chuck.
NginX speaks to its back end services using HTTP/1.0 which does not
include Transfer-Encoding. It therefore adds it’s own transfer encoding
and life becomes very messy.
To fix this, there is a patch in this thread:
Thanks to Igor for the patch. I hope this can save someone else an
afternoon of fiddling.