如何立即发送标题

时间:2013-12-24 17:00:40

标签: nginx php output-buffering

<?php
header("X-Accel-Buffering: no");
header('Content-Encoding: none;');
//and yet other headers

ob_end_flush();
flush();
sleep(1);

echo time().PHP_EOL;
flush();
sleep(2);
echo time().PHP_EOL;

所以,当我使用Apache + php,并关闭Apache和php中的缓冲时, 并得到这个scipt的页面,我将在firebug中看到,等待响应的时间大约为0(使用localhost)

但是,如果与php-fpm的nginx相同,我会看到,等待响应的时间大约是1秒。

因此,nginx(或php-fpm)不希望立即发送标头。为什么? 我该怎么办?

PS 根据不同的论坛

nginx conf -     proxy_buffering off;     fastcgi_max_temp_file_size 0;     fastcgi_keep_conn on;     gzip off;

php conf     output_buffering =关

1 个答案:

答案 0 :(得分:0)

&gt; = nginx-1.5.6 之前,X-Accel-Buffering: no标头不会影响fastcgi_buffering。这可能是你的问题的原因,因为默认的fastcgi缓冲区是4-8k,并在nginx + php-fpm设置中使用。