Welcome! Log In Create A New Profile

Advanced

Re: Duplicate Content-Length header with same value, recent change in behavior intentional?

Jesse Stimpson via nginx
April 19, 2023 09:10AM
Yes, apologies for being unclear. Indeed, the upstream proxy is the one
generating the duplicate header. My message is primarily concerning the
behavior of nginx upon recognizing such a duplicate from the upstream. In
order to complete my testing, I wrote an http server as my upstream that
purposefully sent duplicate headers. I realize this consider misbehavior of
an upstream.

On Wed, Apr 19, 2023 at 9:06 AM Thomas Ward <teward@thomas-ward.net> wrote:

> This sounds like your backend and nginx are both generating the header.
> NGINX hasn't changed to the point it would create two headers, but if your
> backend is adding the header as well as nginx then there's your problem.
>
>
>
> Sent from my Galaxy
>
>
>
> -------- Original message --------
> From: Jesse Stimpson via nginx <nginx@nginx.org>
> Date: 4/19/23 08:57 (GMT-05:00)
> To: nginx@nginx.org
> Cc: Jesse Stimpson <jstimpson@relaypro.com>
> Subject: Duplicate Content-Length header with same value, recent change in
> behavior intentional?
>
> Hello,
>
> I've noticed a recent change in behavior that occurred between releases
> 1.22.1 and 1.23.4, and I'm unable to find this particular change documented.
>
> If an upstream proxy sends a response with duplicate Content-Length
> headers, both of the same value, nginx 1.22.1 allows the response to be
> sent to the client, removing the duplicate. However, nginx 1.23.4 (and
> 1.24.0) responds to the client with a 502. I did not explicitly test with
> any other versions.
>
> I won't try to make any claims on the correctness of either behavior, but
> it is a change that may affect some workloads.
>
> Here is an example response that exhibits the change:
>
> """
> HTTP/1.1 200 OK
> Server: http_tcp
> Content-Length: 12
> Content-Length: 12
> Connection: Closed
>
> Hello World\n
> """
> ------
>
> jstimpson:[~/dev/c/nginx-1.22.1]: curl -i localhost
> HTTP/1.1 200 OK
> Server: nginx/1.22.1
> Date: Wed, 19 Apr 2023 12:17:05 GMT
> Content-Length: 12
> Connection: keep-alive
>
> Hello World
>
> -----
>
>
> jstimpson:[~/dev/c/nginx-1.23.4]: curl -i localhost
> HTTP/1.1 502 Bad Gateway
> Server: nginx/1.23.4
> Date: Wed, 19 Apr 2023 12:13:09 GMT
> Content-Type: text/html
> Content-Length: 497
> Connection: keep-alive
> ETag: "643fd39e-1f1"
>
> ...<snip>...
>
>
> ---------
>
> These tests were done with this simple config, the rest of the conf is
> defaults.
>
> location / {
> proxy_pass http://localhost:4040;
> }
>
>
> Is this change intentional? Did I overlook it in the Changelog?
>
> Thanks,
> Jesse
>
_______________________________________________
nginx mailing list
nginx@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx
Subject Author Posted

Duplicate Content-Length header with same value, recent change in behavior intentional?

Jesse Stimpson via nginx April 19, 2023 08:58AM

RE: Duplicate Content-Length header with same value, recent change in behavior intentional?

Thomas Ward April 19, 2023 09:08AM

Re: Duplicate Content-Length header with same value, recent change in behavior intentional?

Jesse Stimpson via nginx April 19, 2023 09:10AM

RE: Duplicate Content-Length header with same value, recent change in behavior intentional?

Thomas Ward April 19, 2023 09:24AM

Re: Duplicate Content-Length header with same value, recent change in behavior intentional?

Maxim Dounin April 19, 2023 02:54PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 298
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready