Throwing nginx (or Apache or lighthttpd) in front of other application stacks is so common that we often don't think twice about the possible costs. This bit me over the weekend when I casually threw up nginx for SSL termination and configured HttpProxyModule to proxy to my Play Framework driven application.
I failed to heed the first section in the HttpProxyModule docs. See that note about how "the entire client request will be buffered in nginx before being passed on to the backend proxied servers" ?
That's one note you are going to care about when you're handling large requests and can't figure out why your application is so slow to respond to them.