TheOnly92
TheOnly92

Reputation: 1763

PHP connection_aborted doesn't work with nginx?

I can't seem to get the function connection_aborted to work with nginx. The code I used to test is as follow:

<?php
ignore_user_abort(true);
ob_implicit_flush();
$i = 0;
while (!connection_aborted()) {
    echo $i;
    $i++;
    sleep(1);
}
file_put_contents('test',$i);

In Apache, it works correctly, although it delays a little. i.e. When I press stop button on browser when "3", the 'test' file shows "8". That is an acceptable margin, but on nginx, it doesn't seem to output anything to the 'test' file.

Upvotes: 1

Views: 3208

Answers (2)

Alexander Azarov
Alexander Azarov

Reputation: 13221

Check your Nginx configuration, it should have

fastcgi_ignore_client_abort off;

This configuration key has off as the default, so even if you have no fastcgi_ignore_client_abort at all, your script should work as expected.

Upvotes: 5

Bob Fanger
Bob Fanger

Reputation: 29897

My guess is that "connection_aborted()" is unable to detect the "ABORTED" connection
(and the script is still running)

Upvotes: 0

Related Questions