view xml/en/docs/faq/chunked_encoding_from_backend.xml @ 3090:27532d42102b default tip

Documented the "rate" parameter of the "error_log" directive.
author Maxim Dounin <mdounin@mdounin.ru>
date Sun, 16 Jun 2024 06:55:30 +0300
parents 4add6ae1296f
children
line wrap: on
line source

<!--
  Copyright (C) Nginx, Inc.
  -->

<!DOCTYPE article SYSTEM "../../../../dtd/article.dtd">

<article name="Why nginx doesn’t handle chunked encoding
               responses from my backend properly?"
         link="/en/docs/faq/chunked_encoding_from_backend.html"
         lang="en"
         rev="2">

<section>

<para>
<initial>Q:</initial>
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

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

</para>

<para>
&nbsp;
</para>

<para>
<initial>A:</initial>
Your backend violates HTTP specification (see
<link url="https://datatracker.ietf.org/doc/html/rfc2616#section-3.6">RFC 2616,
"3.6 Transfer Codings"</link>).
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.
</para>

</section>

</article>