Nginx + Anulação do cliente PHP-FPM

1

Aqui está minha configuração (Nginx 1.7.x):

server {

    listen 8000;
    index index.php index.html index.htm;
    root /var/www/;
    server_tokens off;
    chunked_transfer_encoding off;

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_index index.php;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        include fastcgi_params;
        fastcgi_keep_conn on;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
    }

}

E configuração do php-fpm:

[www]
user = www-data
group = www-data
listen = /var/run/php5-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.allowed_clients = 127.0.0.1
pm = ondemand
pm.max_children = 6000;
pm.process_idle_timeout = 5;
chdir = /
security.limit_extensions = .php
php_flag[display_errors] = on
php_flag[display_startup_errors] = on

Eu tenho um script PHP do qual eu envio LIVE DATA para o cliente .. Quando o cliente fecha a conexão, eu vejo que o PID está sendo fechado após 15-20 segundos . Eu acho que isso é devido ao buffer e à maneira como o nginx funciona.

Por exemplo, se eu desabilitar o buffer nginx / fastcgi definindo fastcgi_buffering a conexão do cliente será fechada instantaneamente .

No entanto, o buffering nginx é muito importante para mim para reduzir qualquer atraso do cliente, se encontrado.

Então, existe alguma maneira de o nginx / php conseguir instantaneamente obter o evento quando um cliente se desconecta mesmo quando estou com o buffer ativado?

Obrigado

    
por user3393046 15.11.2014 / 04:30

0 respostas