nginx

Why nginx doesn't handle chunked encoding responses from my backend properly?


english
русский

简体中文
עברית
日本語
türkçe

news
about
download
security advisories
documentation
pgp keys
faq
links
books
support
donation

trac
wiki
twitter
nginx.com
This translation may be out of date. Check the English version for recent changes.

Q: My backend server appears to send HTTP/1.0 responses using chunked encoding but nginx doesn't handle it correctly. For instance, I'm using nginx as a frontend to my node.js application and instead of pure JSON from backend, nginx returns something framed in decimal numbers like

47
{"error":"query error","message":"Parameter(s) missing: user,password"}
0

 

A: Your backend violates HTTP specification (see RFC 2616, "3.6 Transfer Codings"). The "chunked" transfer-codings must not be used with HTTP/1.0. You'd need to either fix your backend application or upgrade to nginx version 1.1.4 and newer, where an additional code was introduced to handle such erratic backend behavior.