PHP connection_aborted nginx ile çalışmıyor?

1 Cevap php

Ben nginx ile çalışmak connection_aborted işlevi almak için görünmüyor olabilir. Ben test etmek için kullanılan kod aşağıdaki gibidir:

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

Biraz gecikmeler olmasına rağmen Apache, bu, düzgün çalışır. Ben tarayıcınızda durdurma düğmesine bastığınızda, yani "3", 'test' dosyası "8" gösterdiğinde. Bu kabul edilebilir bir marj olduğunu, ancak nginx, bir 'test' dosyası çıktı bir şey görünmüyor.

1 Cevap

Lütfen Nginx yapılandırmasını denetleyin, bu olmalı

fastcgi_ignore_client_abort off;

Bu yapılandırma, anahtar beklendiği gibi off varsayılan olarak, bu nedenle tüm hiçbir fastcgi_ignore_client_abort olsa bile, script çalışması gerekir vardır.

Arada, Nginx yılında FastCGI tamponu kapatır mümkün değildir. Nginx kendi tampon ve TCP tamponu gibi: Bu bir FastCGI komut okuma ve böylece ilgili iki tamponlar varken Nginx her zaman arabelleğe kullanmak anlamına gelir. Bu potansiyel gecikme artacaktır.