Nginx反向代理

JerryXia 发表于 , 阅读 (0)
默认,NGINX会为后端服务器的响应提供缓冲区。一个响应被存放在内部缓冲区中,直到整个响应被接收到,然后发送给客户端。缓冲区针对一些慢客户端(如果响应被NGINX同步地返回,将浪费后端服务器的时间)可以提高性能。然而,如果NGINX开启了缓冲区,将使得后端服务器快速地处理响应,而当客户端需要下载它们时,NGINX会存储响应尽可能久的时间。我们可以使用proxy_buffers来为每一个请求设置缓冲区的大小和数量。响应的第一部分被存在单独的缓冲区内,其大小通过proxy_buffer_size指令设置这部分通常包含一些比较小的响应头,并且比剩下的响应缓冲区更小。如
location /some/path/ {    proxy_buffers 16 4k;    # 16个缓冲区,每个缓冲区4K(默认为一个内存页,可通过getconf PAGE_SIZE获取)    proxy_buffer_size 2k;   # 用于存放响应的第一个部分信息, 比普通缓冲区4K更小    proxy_pass http://localhost:8000;}        
如果缓冲区禁用了,当NGINX接收到后端服务器的响应时,会同步地发送给客户端。这种情况可能在一些快速客户端交互(需要尽可能快接收响应)中会使用。如果你想使某个location禁用缓冲区,可以使用proxy_buffering off指令。
location /some/path/ {    proxy_buffering off;    proxy_pass http://localhost:8000;}