我看到proxy_request_buffering将缓冲请求和proxy_buffering响应.
但是,我想了解这意味着什么的内部.
最佳答案
来自Nginx documention:
原文链接:https://www.f2er.com/nginx/435690.htmlProxy_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指令设置的缓冲区中.如果整个响应不适合内存,则可以将其中的一部分保存到磁盘上的temporary file.写入临时文件由proxy_max_temp_file_size和proxy_temp_file_write_size指令控制.
禁用缓冲时,响应会在收到响应时立即同步传递给客户端. Nginx不会尝试从代理服务器读取整个响应. Nginx一次可以从服务器接收的数据的最大大小由proxy_buffer_size指令设置.
也可以通过在“X-Accel-Buffering”响应头字段中传递“是”或“否”来启用或禁用缓冲.可以使用proxy_ignore_headers指令禁用此功能.
Proxy_Request_Buffering
Syntax: proxy_request_buffering on | off;
Default:
proxy_request_buffering on;
Context: http,location
This directive appeared in version 1.7.11.
Enables or disables buffering of a client request body.
启用缓冲时,在将请求发送到代理服务器之前,整个请求正文是客户端的read.
禁用缓冲时,请求主体在收到时立即发送到代理服务器.在这种情况下,如果Nginx已经开始发送请求主体,则无法将请求传递给next server.
当使用HTTP / 1.1分块传输编码来发送原始请求主体时,无论指令值如何,都将缓冲请求主体,除非HTTP / 1.1是enabled用于代理.