Fastcgi buffering

djeyewater nginx-forum at nginx.us
Sat Jan 23 14:19:32 MSK 2010


I have a php script that uses ImageMagick to process an image. What I'd like to do is to flush the buffers just before the script calls ImageMagick, that way the user at least gets some output in their browser instead of getting an empty page until ImageMagick has done its stuff (which takes a while).

At the moment I'm using a test page to simulate the above situation:

<?php ini_set('zlib.output_compression', 0); 
echo str_repeat("hello\n", 800);
flush();
sleep(5);
?>
bye


However, I don't receive the output in the browser until the full page has been processed.

I'm using nginx/0.7.64 proxying to nginx/0.7.59 with spawn-fcgi to start the php processes.

The front end nginx has proxy_buffering off;

I'm guessing this is something to do with fastcgi and the fastcgi buffer settings in nginx, however I tried setting them to what seems to be the minimum, but still don't get the output in the browser (FF3.5) until the php script is completely finished.

fastcgi_buffers 2 1k;
fastcgi_buffer_size 1k;
fastcgi_busy_buffers_size 1k;


So how could I send the output to the browser when flush() is called in the php script?

Thanks

Dave

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,44738,44738#msg-44738




More information about the nginx mailing list