将Apache升级到HTTP / 2会破坏SSE

时间:2017-09-29 23:31:53

标签: apache server-sent-events http2

我有一个小型的Web应用程序,它运行在共享的Apache主机上,并使用FastCGI(mod_fcgi)和服务器发送的事件(SSE)。

为了制作SSE,我们需要为服务器上的虚拟主机设置FcgidOutputBufferSize=0。因为SSE协议需要立即发送所有事件,而不进行缓冲。

但是在将服务器升级到Apache v2.4.27并将协议升级到HTTP / 2.0之后,SSE流停止正常发送,但是在它们之间存在大量暂停的大块中,直到收集到足够大的事件以使其足够大封装

似乎切换到HTTP / 2.0会激活某种延迟流的缓冲。

如果我强制我的浏览器只使用HTTP / 1.1,那么一切都和以前一样。

主机提供商声称他无法解决此问题,因为它需要切换回HTTP / 1.1并且他不愿意这样做。

那么,SSE和HTTP / 2.0之间是否存在一些基本的不兼容性,或者有一些设置可以更改以使其正常工作?

或者应用程序可以发送一些标头以强制Apache不缓冲? (例如,nginx需要x-accel-buffering: no才能正常使用SSE)。

0 个答案:

没有答案