我有一个PHP下载脚本,可以动态地将文件捆绑到拉链中。因此,用户感觉某事正在发生,我们发送一个标题(“Content-disposition:attachment; filename = your_file.zip”);尽快然后开始逐出文件。在我们传统的Apache / PHP设置中,它运行良好,但我们试图让我们的代码库在nginx / HHVM服务器上运行,并且它不会以相同的方式发送标头。
相反,nginx / HHVM等待发送标题直到完成大量处理(我不知道多少),并且从HHVM的角度来看,发送了几个文件。这意味着用户在获得“另存为”对话框之前会等待很长时间,并且会产生不良体验。
在我的nginx网站配置中,我设置了
fastcgi_buffering off;
fastcgi_keep_conn on;
proxy_buffering off;
我也试过添加flush();和标题('X-Accel-Buffering:no');在PHP中似乎没有任何帮助。
我还需要改变什么吗?