我希望Nginx在短时间内暂停(保持)http请求,同时升级或重启后端服务,执行数据库迁移或其他一些管理任务,而不会给最终用户造成错误.
基本上我想做以下操作序列:
>告诉Nginx停止向我的后端转发请求,而不是将它们保存在异步队列中;
>等待并在完成对后端的所有待处理请求时得到通知;
>升级,重启或以其他方式操作空闲后端服务;
>使用其私人地址快速验证后端服务是否正常运行;
>打开Nginx的洪水门,让所有待处理的请求通过.
理想情况下,这将允许我执行需要独占访问整个后端服务器的管理任务,例如重新启动,升级或迁移,而不会导致最终用户比延迟更严重,希望不到一分钟.
我找到了this solution,但它没有解决第2点.此外,它需要编译成Nginx的Lua解释器,任何内存泄漏和可能暗示的安全问题.
是否有任何配置技巧或Nginx模块专门针对此问题?是否可以通过测试控制文件的存在来完成Nginx库存?
(我知道全功能和有点庞大的uWSGI application server在其他数百个版本中都有这个功能,但我宁愿避免在Nginx和我的后端之间引入另一个元素.)
最佳答案
原文链接:https://www.f2er.com/nginx/435660.html