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

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

我设置了一个 nginx 反向代理服务器,以通过将请求转发到在端口 5000 上运行的应用程序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;

但这似乎没有效果。

答案1

您有以下选择:

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

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

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

相关内容