Issue with fastcgi_cache and missing content length / length:0 (chunked transfer encoding)

Dear list,

i’m having an issue with cached fastcgi responses with content length 0:

#curl http://127.0.0.1/lq/aac/iPhone/a3efe0a282dafd
curl: (18) transfer closed with outstanding read data remaining

#curl -I http://127.0.0.1/lq/aac/iPhone/a3efe0a282dafd
HTTP/1.1 302 Moved Temporarily
Server: nginx/0.8.49
Date: Thu, 26 Aug 2010 12:27:23 GMT
Content-Type: audio/aacp
Connection: close
Location: http://xxxxx/stream_basis_aac_lq#4p765no3|0|0|vCubar|nnp|yd
X-CACHE: HIT

I understand the Content-Length Header is missing and therefor chunked
transfer encoding breaks.

This only happens with cached responses and only with fastcgi_cache.

Everything works fine, if i either disable fastcgi_cache or if i wrap
another nginx around my nginx+php-fpm setup with proxy_cache.

i’ve done quite a bit of research but didn’t find any other solution
than setting chunked_transfer_encoding to off, which effects every
request.

i’m using nginx/0.8.49 with php-fpm 5.3.3 on gentoo

Is there any other way to fix this? Any thoughts are appreciated.

cheers

Thomas Lohner

Hello!

On Thu, Aug 26, 2010 at 06:13:47PM +0200, Thomas Lohner wrote:

Server: nginx/0.8.49

effects every request.

i’m using nginx/0.8.49 with php-fpm 5.3.3 on gentoo

Is there any other way to fix this? Any thoughts are appreciated.

These patches should resolve your issue:

http://nginx.org/pipermail/nginx-devel/2010-January/000100.html
http://nginx.org/pipermail/nginx-devel/2010-January/000101.html
http://nginx.org/pipermail/nginx-devel/2010-January/000102.html

Maxim D.

Hello maybe this php replicement helps to.

http://gist.github.com/505962or add your nginx.conf
fastcgi_param CONTENT-LENGTH $content_length;


Hüseyin Mert
http://www.hmert.com