我想知道如果我的NGINX向Unicorn发送请求并且NGINX没有收到答复,NGINX是否可以再次向Unicorn发送请求?
答案 0 :(得分:1)
不正常,不。我可以想到一个解决方法,但我确信我会建议它。使用Nginx upstream模块,您可以定义多个上游后端。 Nginx无法知道列出的不同上游服务器是否实际上是同一个后端,也不关心。上游模块的文档说:“如果在与服务器通信期间发生错误,请求将被传递到下一个服务器。”
因此,如果您安排在两个不同的地址(套接字,域名,IP或端口)上使用您的应用程序,那么您可以将Nginx设置为使用upstream
模块尝试两次相同的请求。
如果应用程序在第一次提出请求时没有及时正确响应,则很有可能无法在后续请求中成功响应。建议使用预期方式的upstream
模块:使用两个唯一的应用服务器,这些服务器可能通过后端资源(如数据库)共享状态。