Proxy Buffer的配置的7个指令

与Proxy Buffer相关的指令proxy_buffer_size、proxy_buffers、proxy_busy_buffers_size等,它们的配置都是针对每一个请求起作用的,而不是全局概念,即每个请求都会按照这些指令的配置来配置各自的Buffer,Nginx服务器不会生成一个公共的Proxy Buffer供代理请求使用。

Proxy Buffer启用以后,Nginx服务器会异步地将被代理服务器的响应数据传递给客户端。

  1. Nginx服务器首先尽可能地从被代理服务器那里接收响应数据,放置在Proxy Buffer中,Buffer的大小由proxy_buffer_size指令和proxy_buffers指令决定。

  2. 如果在接收过程中,发现Buffer没有足够大小来接收一次响应的数据,Nginx服务器会将部分接收到的数据临时存放在磁盘的临时文件中,磁盘上的临时文件路径可以通过proxy_temp_path指令进行设置,临时文件的大小由proxy_max_temp_file_size指令和proxy_temp_file_write_size指令决定。

  3. 一次响应数据被接收完成或者Buffer已经装满后,Nginx服务器开始向客户端传输数据。

  4. 每个Proxy Buffer装满数据后,在从开始向客户端发送一直到Proxy Buffer中的数据全部传输给客户端的整个过程中,它都处于BUSY状态,期间对它进行的其他操作都会失败。同时处于BUSY状态的Proxy Buffer总大小proxy_busy_buffers_size指令限制,不能超过该指令设置的大小。

  5. Proxy Buffer关闭时,Nginx服务器只要接收到响应数据就会同步地传递给客户端,它本身不会读取完整的响应数据

Last updated