nginx+php-fpm.如何发送html页面的一部分和之后的其余部分



我有一台运行nginx和php-fpm的服务器。我试图实现的是首先发送页头(站点名称和导航块),然后执行一些逻辑并发送页面的其余部分。

我尝试过回显html的第一部分,然后在php中刷新输出,然后休眠(5)并发送页面的其余部分,但浏览器仍然只有在获得完整页面时才会显示页面(在休眠完成并回显页面的剩余部分之后)

此处:http://php.net/flush人们建议在php.ini中设置

output_buffering = Off 
zlib.output_compression = Off

和nginx.conf

proxy_buffering off;

我试过了,结果还是一样。只有当浏览器获取整个页面时,才会显示该页面。

此外,我认为这可能是因为浏览器获取了页眉,但由于发送了少量数据而没有呈现它,所以我故意将页眉大小增加到50kb,这对我也没有帮助。

有什么办法吗?

已解决。以下是我必须做的:

PHP代码:

ob_start();
$this->outputHeader();
ob_end_flush();
flush();

nginx.conf:

fastcgi_keep_conn on;
gzip off;

注意:我在问题中发布的php和nginx设置没有帮助。所以我将这些值恢复到初始状态。

相关内容

最新更新