我正在尝试运行需要无缓冲区输出的服务。是否可以在 apache 中使用无缓冲区的 php-fpm?
<IfDefine USE_PHP_FPM>
<Proxy "unix:/opt/bitnami/php/var/run/public.sock|fcgi://public-fpm" timeout=300>
</Proxy>
</IfDefine>
<Directory "/var/www/public">
Options +MultiViews +FollowSymlinks
AllowOverride All
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3>
Require all granted
</IfVersion>
<IfDefine USE_PHP_FPM>
<FilesMatch \.php$>
SetHandler "proxy:fcgi://public-fpm/"
</FilesMatch>
</IfDefine>
</Directory>
我已确保禁用mod_deflate
和output_buffering
。我正在使用此脚本进行测试:
<?php
ob_end_clean();
ob_implicit_flush(true);
out("Starting");
flush();
function out($string) {
echo $string . PHP_EOL;
}
$i = 0;
while ($i++ < 100) {
out($i);
flush();
sleep(1);
}
out("Done");
答案1
我继续挖掘,直到发现 mod_pagespeed 已启用!禁用 mod_pagespeed 解决了这个问题。