ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Отключение буферизации дл я fastcgi


  • To: nginx-ru@xxxxxxxxx
  • Subject: Отключение буферизации дл я fastcgi
  • From: Dmitry Koterov <dmitry@xxxxxxxxxx>
  • Date: Sat, 13 Mar 2010 03:29:36 +0300
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:reply-to:received:from:date :x-google-sender-auth:message-id:subject:to:content-type; bh=kjB2G+wjG9ydJrdML4MGd/gXuMUcdtgTY2Hm9gbBp9Y=; b=boYNUHa6zGKaJW7HapsTGqNru/jVw0Ov8u8y5i397odmwh2YVD6nqVENYkd+0BUiGd ZyAb6EyLd+5gTajiR3t6KZkKg8AHBc6siSZ6znKxU3phJdPZCm46akJ8oe+OoNO3MW+L BDFc3+nZFElBocch0HY9d83myQN5wftcZrysU=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:reply-to:from:date:x-google-sender-auth :message-id:subject:to:content-type; b=CeUfDEQ8FYv3ijDB3L3eCeKXgTMfsFzkuuilg2/bNlc/kUcCbVkwG4MgZAJiwGVMhC fjG9TYrl5zu2RNDszE3SUlyp7GrsTbMuiEakEzWoWZG8ECsf0/uiHPJ/tIC4BnpKXTgi MWEzxE489/geJQOZoBdLenQp1Po2ESFvr+UGo=

Добрый день.

Есть вот такая конфигурация:

    location ~ /action/ {
        gzip off;
        fastcgi_buffer_size 4k;
        fastcgi_busy_buffers_size 4k;
        fastcgi_buffers 2 4k;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_param  SCRIPT_FILENAME $document_root/index.php;
        include fastcgi_params;
    }

Вопрос: можно ли ВООБЩЕ ВЫКЛЮЧИТЬ буферизацию, а НЕ сделать ее равной 4k + 2*4k? Дело в том, что в index.php лежит:

// в php.ini отключены output_buffering, output_compression, output_handler; implicit_flush включен
while (ob_get_level()) ob_end_clean(); // на всякий пожарный
for ($i = 0; $i < 5; $i++) {
    echo "Test! " . time() . "<br>\n";
    for ($n = 0; $n < 15000; $n++) echo "\n";
    flush();
    sleep(2);
}
exit;

И экспериментальным путем было установлено, что $n = 15000 (плюс-минус) - это минимальный размер "вантуза", которым удается "протолкнуть" контент в браузер. Установка fastcgi_buffer_size и fastcgi_busy_buffers_size в меньшие значения не помогают (возможно, они просто вообще не могут корректно определяться внутри location, либо же всегда кратны 4K?).

Т.е. задача - минимизировать размер "вантуза" любыми средствами. (Все-таки 15К - это многовато.)
Подскажите, пожалуйста, как это правильно сделать.

P.S.
Такая схема используется для того, чтобы на медленных страницах, которые грузятся дольше несколько секунд, моментально вывести <img src="" Такие страницы иногда встречаются из-за тормозов внешних сервисов, с этим ничего не поделать, к сожалению.

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.