浏览器正在等待symfony主页的最大保持活动时间。
如果我禁用Keepalive(apache),那没关系。收到响应头“qazxsw poi”,浏览器停止等待。总时间接近200毫秒。
如果我启用Keepalive(apache),则标头响应为:
连接:保持活力 保持活跃:超时= 5,最大= 500 转移编码:分块
没有'Connection: Close
'标题
没有'Content-Encoding
'标题(保持活力)
php.ini中:
output_buffering = 4096
我在远程服务器上使用php-fpm。这是apache配置:
ProxyPassMatch ^ /(.. php(/.)?)$ fcgi://192.168.1.1:9000 / var / php-fpm / www / public / $ 1
浏览器收到数据但等待5秒。似乎浏览器正在等待分块数据的结束(最后0个大小的数据包)。
Web服务器是apache2.4.6,代码是php7.1.8 / symfony 4. developpement环境中的相同代码工作正常(另一个主机)。
apache日志中的执行时间接近20毫秒(不是5秒!)。浏览器等待传输结束并以keepalive超时停止。如果我为keepalive超时设置20秒,浏览器在收到数据后等待20秒。
Symfony性能指标“总执行时间”为18ms(在开发模式下)。 Internet Explorer时间轴(F12)显示5.35毫秒,详细结束时“响应时间”为5秒。
如果我得到一个简单的页面(phpinfo),我没有问题,它是symfony主页,只有生产服务器。
一个简单的curl测试(没有ajax,js ......)显示问题:数据完全被接收(qazxsw poi)但curl仍在等待5s并写入消息:
传输关闭,剩余未完成的读数据
代替 :
连接#0到主机xxxxxxx保持不变
如果我禁用ssl apache虚拟主机并且我使用Fiddler进行测试,当我点击解码响应主体时,Fiddler会显示此错误消息:
chunked body没有正确终止0大小的块
php / symfony有php块问题吗?
非常感谢你。
我已经解决了我的问题。 apache中的指令“FallbackResource”导致了这个“块”问题。此选项允许禁用AllowOverride和.htaccess使用,并要求Apache Web服务器将所有请求重定向到一个页面(不再需要DirectoryIndex)。但它似乎与索引页面的KeepAlive不兼容。我不知道它是不是一个apache bug。