nginx proxy_buffering立即向客户端发送响应

将问题分解为一句话:是否可以打开nginx中的proxy_buffering,但是当客户端速度足够快,并且不能缓冲时,立即向客户端发送后端服务器的响应?

我知道如果closuresproxy_buffering,所有请求都会通过nginx,但后端服务器worker仍然是打开的,直到所有数据都发送到客户端。 如果打开proxy_buffering,则nginx将等待后端服务器完成,然后开始将数据发送到客户端,后端服务器可以在数据位于客户端之前closures进程。

为了简单起见,我希望两者的优点:我希望客户尽快获得后端服务器的第一个块,但也希望从后端服务器的所有数据不能传递给客户端(如慢连接)将被nginx缓冲,所以后端服务器进程可以尽快closures。

为了理解为什么我需要这个:我有一个PHP后端服务器与应用程序刷新序列输出。 所以如果你请求一个页面,那么带有css,js等的HTML会在进程启动后立即刷新,之后“重”应用程序工作开始,并且我发送片段中的一部分html。 所以这样做的好处是客户/浏览器可以在请求完成之前开始下载.js,.css和parsing它们,所以我减less了我网站的关键呈现path。

问题是,如果proxy_buffering处于打开状态,客户端将不会获取任何数据,直到后端请求完成。 如果我打开proxy_buffering,则后端进程保持打开状态,直到客户端收到最后一个数据为止。

提前致谢