proxy_cache
我对用于缓存客户端请求的静态文件的缓存了解一点。但proxy_buffer
真的让我很困惑。它能为代理后端服务器缓冲吗?
我还看到client_max_body_size
和client_body_buffer_size
出现在nginx.conf
和proxy_cache
之后proxy_cache
。这有关系吗?
答案1
代理缓冲区与 nginx 处理从代理服务器收到的响应的方式有关。
当启用缓冲时,nginx 会立即将来自代理服务器的响应接收到内存缓冲区中,并在收到响应后关闭与代理服务器的连接。然后,它将响应从其缓冲区发送到客户端。
当缓冲被禁用时,nginx 会将响应同步发送到客户端。这意味着,只要将完整的响应发送到客户端,与代理服务器的连接就会保持打开状态。
因此,缓冲是一种临时存储每个客户端的响应的方法,以允许与代理服务器的连接尽早关闭。
代理缓存是 nginx 在本地存储数据,并将缓存的数据副本提供给多个客户端的过程。这意味着代理服务器不会针对每个客户端请求进行查询,但如果缓存的数据仍然有效(生存期未过),则会从缓存中提供数据。
代理缓存使代理服务器上的负载大大减少,但可能会导致旧数据被发送给客户端。