让 Nginx 在应用程序重新加载时保留请求

Dax*_*ohl 5 nginx

我设置了一个 nginx 反向代理服务器,用于通过proxy_pass http://localhost:5000;.

这是有效的,但是当我重新启动应用程序时,大约 10 秒任何请求都会立即返回502 Bad Gateway,直到应用程序再次重新加载。

有没有什么方法可以设置 Nginx 在应用程序关闭时保留这些请求,并经常重试?我试过了

upstream backend {                         
  server localhost:5000 fail_timeout=20s; 
  server localhost:5000 backup;          
}
...
    proxy_pass http://backend;
Run Code Online (Sandbox Code Playgroud)

但这似乎没有效果。

Xav*_*cas 1

您有一些选择:

  • 搜索您的上游文档以找到正确的重新加载信号/api,而不是停止和启动序列。

  • 如果您的页面可以缓存,请定义代理缓存并提供过时的页面,直到应用程序再次启动。

  • 将后端扩展到 2 个实例并一次重新启动一个实例,然后proxy_next_upstream根据需要进行调整。