我设置了一个 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
根据需要进行调整。