<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>
    </p>
    <div class="moz-text-flowed" style="font-family: -moz-fixed;
      font-size: 12px;" lang="x-unicode">
      <blockquote type="cite" style="color: #000000;">
        <blockquote type="cite" style="color: #000000;">If you report
          that nginx starts to send the content to the back-end
          <br>
          before nginx has received all of the content from the client,
          then
          <br>
          proxy_request_buffering is not working as intended.
          <br>
        </blockquote>
      </blockquote>
      Yes, that's what I am reporting, I put together a very simple
      tornado (python) script, I used both tcp connection and a unix
      socket, no differences
      <br>
      I used curl and my own upload python client, result were the same
      <br>
      <br>
      <blockquote type="cite" style="color: #000000;">
        <blockquote type="cite" style="color: #000000;">When I try a
          quick test here, nginx receives the full content from the
          <br>
          client before it tries to connect to the back-end.
          <br>
        </blockquote>
      </blockquote>
      I prepared a minimal working sample which is easy to run and test
      <br>
      this is python script: <a class="moz-txt-link-freetext"
        href="https://paste.ubuntu.com/25903714/">https://paste.ubuntu.com/25903714/</a>
      <br>
      (see lines 16 to 23 to know how to run it, it's so simple, you
      need a Linux based OS and python)
      <br>
      and this is nginx config: <a class="moz-txt-link-freetext"
        href="https://paste.ubuntu.com/25903719/">https://paste.ubuntu.com/25903719/</a>
      <br>
      <br>
      with the above python client you can easily produce the problem,
      it will print chunk sizes along with the number of requests, use a
      file larger than 3M to get better results
      <br>
      to make it complete, here is an example to upload file using curl:
      curl --request POST --data-binary "@<i class="moz-txt-slash"><span
          class="moz-txt-tag">/</span>file/path" <a class="moz-txt-link-freetext" href="http://localhost/upload">http://localhost/upload</a><span
          class="moz-txt-tag">/</span></i>
      <br>
      <br>
      This is my first time that I'm using this service, So I thought
      putting codes somewhere else is cleaner and better
      <br>
      <br>
    </div>
  </body>
</html>