TheOnly92 TheOnly92 - 6 months ago 65
PHP Question

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.

Answer

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.