proxy_request_buffering和proxy_buffering在nginx上有什么区别?

我看到proxy_request_buffering将缓冲请求和proxy_buffering响应。

不过,我想了解这是什么意思的内部。

来自Nginx的文档 :

Proxy_Buffering

Syntax: proxy_buffering on | off; Default: proxy_buffering on; Context: http, server, location Enables or disables buffering of responses from the proxied server. 

当启用缓冲时,nginx会尽快从代理服务器接收响应,并将其保存到由proxy_buffer_size和proxy_buffers指令设置的缓冲区中。 如果整个响应不适合内存,它的一部分可以保存到磁盘上的临时文件 。 写入临时文件由proxy_max_temp_file_size和proxy_temp_file_write_size指令控制。

当缓冲被禁用时,响应将在收到时立即同步传递给客户端。 nginx不会尝试从代理服务器读取整个响应。 nginx一次可以从服务器接收的最大数据量由proxy_buffer_size指令设置。

通过在“X-Accel-Buffering”响应头域中通过“是”或“否”,也可以启用或禁用缓冲。 可以使用proxy_ignore_headers指令禁用此function。

Proxy_Request_Buffering

 Syntax: proxy_request_buffering on | off; Default: proxy_request_buffering on; Context: http, server, location This directive appeared in version 1.7.11. Enables or disables buffering of a client request body. 

启用缓冲时,在将请求发送到代理服务器之前,将从客户端读取整个请求主体。

当缓冲被禁用时,请求主体立即被发送到被代理的服务器。 在这种情况下,如果nginx已经开始发送请求主体,则请求不能传递到下一个服务器 。

当使用HTTP / 1.1分块传输编码发送原始请求体时,不pipe指令值如何,都会caching请求体,除非HTTP / 1.1已启用代理。