FastCGI PHP - unable to prematurely close connection to browser

Hoang Hoang lists at ruby-forum.com
Sat Feb 6 18:25:59 MSK 2010


Hi,

I just tested your script and found that I needed to wait 10s to see the 
response. I am using Windows XP, Apache 2.1.11 worker MPM, PHP 5.3.1

It did not work asynchronously as you expected. Am I missing something 
here?

Regards

cactus wrote:
> Hi all!
> 
> I am optimizing a few of the PHP scripts by:
> - doing all that generates output to browser
> - closing connection to browser
> - doing some more processing
> 
> The processing bit cannot be avoided, but the speed of execution (from 
> visitors' point of view) is awesome this way. The problem is that we 
> have tried migrating the script to NginX + FastCGI (it works on Apache + 
> mod_php) but it doesn't close the connection anymore, it keeps it open 
> until the end... Which makes scripts slow again.
> 
> I am using Content-Length to allow server to figure out that all content 
> was already generated. This is the test case:
> 
> <?
>   header("Connection: close"); // not sure we need this one
>   header("Content-Encoding: none");
>   ignore_user_abort(true);
>   ob_start();
> 
>   echo ('Lets output something.');
> 
>   // output Content-Length and flush buffers:
>   $size = ob_get_length();
>   header("Content-Length: $size");
>   ob_end_flush();
>   flush();
> 
>   // ****************
>   // do some heavy processing here:
>   sleep(5);
> 
>   function postproc() {
>     flush();
>     sleep(5);
>   }
>   register_shutdown_function('postproc');
> ?>
> 
> 
> The browser shows this page immediately in Apache+mod_php but it waits 
> for 10 seconds in NginX + FastCGI.
> 
> I am a bit stuck here and would appreciate some help... Is this a 
> problem with FastCGI? Is there another way to do it?
> 
> Thanks!
> 
> Posted at Nginx Forum: 
> http://forum.nginx.org/read.php?2,51310,51310#msg-51310

-- 
Posted via http://www.ruby-forum.com/.



More information about the nginx mailing list