Nginx如何将请求传递给后端?

Nginx如何将请求传递给后端?,nginx,Nginx,我对Nginx HTTP代理过程感到困惑。Nginx如何处理请求并将其传递给后端?例如,我将一个文件发布到Nginx,Nginx是否先将整个文件保存到tmp目录中,然后将其传递到后端?或者直接传递请求?nginx将代理完整的请求,这意味着它将代表您执行请求,并使用从请求返回的标题/内容进行响应。这使它对客户端保持透明 在缓冲客户端请求方面,它取决于大小。如果较小,则会在内存中缓冲,但较大的请求将临时存储到文件系统: 附加信息:嗨,安森,如果我的回答对你的问题有帮助,请向上投票并接受我的回答。明白

我对Nginx HTTP代理过程感到困惑。Nginx如何处理请求并将其传递给后端?例如,我将一个文件发布到Nginx,Nginx是否先将整个文件保存到tmp目录中,然后将其传递到后端?或者直接传递请求?

nginx将代理完整的请求,这意味着它将代表您执行请求,并使用从请求返回的标题/内容进行响应。这使它对客户端保持透明

在缓冲客户端请求方面,它取决于大小。如果较小,则会在内存中缓冲,但较大的请求将临时存储到文件系统:


附加信息:

嗨,安森,如果我的回答对你的问题有帮助,请向上投票并接受我的回答。明白了,谢谢!还有一个问题,如果客户端和Nginx之间的连接在Nginx向后端发送请求时中断,那么该请求会发生什么情况?如果对您的客户端的请求中断,则意味着Nginx服务器的tcp堆栈将重试接收您的ack,然后放弃并断开连接。如果对后端的请求被破坏,那么您的客户端很可能会收到502响应坏网关。在您刚才提到的第一种情况下,这是否意味着无论客户端和nginx之间的连接是否被破坏,nginx和后端都会继续处理请求?HTTP是无状态的。Nginx将对后端进行一次调用,并缓冲响应,直到您得到响应或连接断开。根据您的配置和请求,nginx还可以缓存响应以获得更好的性能,例如静态内容,但这完全是另一个主题。