从 Nginx 发送的请求的响应流

Response flow for the requests sent from Nginx

提问人:user93916 提问时间:10/6/2023 更新时间:10/6/2023 访问量:35

问:

我们有一个托管在 AWS 中的应用程序。我们在应用程序(微服务应用程序)前面有 Nginx 服务器(托管在 ec-2 实例中)。每个请求都会命中 Nginx,然后转发到托管相应服务的相应服务器。关于响应,是直接从处理请求的服务器发送到Internet,还是将其发送回Nginx,然后Nginx会从那里处理。

我是 Nginx 的新手。刚开始探索它。有关响应路由的任何指导都将有很大帮助。

amazon-web-services httpresponse nginx-config

评论


答:

0赞 Mark B 10/6/2023 #1

Nginx 在您的配置中充当反向代理。响应通过 Nginx 返回。服务器不会建立新的传出网络连接来发送 HTTP 响应,它使用传入 HTTP 请求建立的相同网络连接。

评论

0赞 user93916 10/6/2023
非常感谢 Mark 的回复。是否有任何特殊情况,响应不会返回 Nginx 或没有这样的方法。
0赞 Mark B 10/6/2023
您是否正在尝试解决特定问题或其他问题?或者您只是想了解网络是如何工作的?您是否在问是否存在可以阻止响应的情况,或者响应可以绕过代理并直接从服务器转到客户端的情况?没有一种情况是,响应可以绕过代理,而不以某种方式与客户端建立新的网络连接,这将是您必须以某种方式构建到系统中的功能。
0赞 user93916 10/7/2023
最主要的是了解 Nginx 的工作原理,以便我可以全面了解我们的应用程序如何路由响应。通常,当应用程序服务器 (ec2-instance) 位于 Network Load Balancer 后面时,响应将直接发送到客户端,而不会返回到负载均衡器。因此,想要了解 Nginx 的流程。在您的确认下,我了解,在 Nginx 的情况下,当某些请求从 Nginx 重定向到另一台服务器时,响应将被路由回 Nginx,并从那里得到处理。非常感谢您的帮助。
0赞 Mark B 10/7/2023
“通常,当应用程序服务器 (ec2-instance) 位于网络负载均衡器后面时,响应将直接发送到客户端,而不会返回负载均衡器。”不,这不是真的。负载均衡器也是一个反向代理。响应通过负载均衡器(通过已建立的 TCP 连接)传回。
0赞 user93916 10/7/2023
非常感谢马克的及时回复。这里有一个查询:在我们的应用程序中,托管 Nginx 的 ec-2 实例位于公有子网中,托管应用程序的 ec-2 实例位于私有子网中。在帖子中:(stackoverflow.com/questions/71203834/...)提到,对于私有子网中的实例,流量将从NAT网关->Internet网关->公共Internet进行路由。由于 Nginx 是反向代理,而我们的应用程序服务器位于私有子网中,在这种情况下它如何工作。