<?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 =关
答案 0 :(得分:0)
在&gt; = nginx-1.5.6 之前,X-Accel-Buffering: no
标头不会影响fastcgi_buffering
。这可能是你的问题的原因,因为默认的fastcgi缓冲区是4-8k,并在nginx + php-fpm设置中使用。