"Content-Length" and "Transfer-Encoding" headers sent at the same time, breaking Nginx proxy [fixed]
Looks like new version of Nginx have become very fussy about seeing both "Content-Length" and "Transfer-Encoding" headers. If I understand things correctly, the "Transfer-Encoding" header took priority before Nginx stopped accepting both as an option.
This has broken my Nginx proxy which is not reporting this in the log,
'2025/05/21 08:57:10 [error] 212#212: *185 upstream sent "Content-Length" and "Transfer-Encoding" headers at the same time while reading response header from upstream, client: 185.71.38.58, server: kiwisdr.simonb.org.uk, request: "GET / HTTP/2.0", upstream: "http://172.17.0.1:8073/", host: "kiwisdr.simonb.org.uk"'
So I guess the solution is to drop the Content-Length header.
Current output from curl -I...
HTTP/1.1 200 OK
Date: Wed, 21 May 2025 09:03:14 GMT
Last-Modified: Sat, 17 May 2025 13:00:33 GMT
Etag: "68288871.7679"
Content-Type: text/html
Content-Length: 7679
Connection: keep-alive
Accept-Ranges: bytes
Cache-Control: max-age=0, must-revalidate
Server: KiwiSDR_1.810/Mongoose_5.6
Transfer-Encoding: chunked
See also...
Comments
Thanks. Will be fixed in the next release (v1.811)