首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >不间断的nginx +2火枪安装

不间断的nginx +2火枪安装
EN

Stack Overflow用户
提问于 2019-08-10 15:58:42
回答 1查看 153关注 0票数 2

那么诀窍是什么呢?Nginx面对着客户。通常情况下,这些请求会在80号港口被转交给古尼科恩A。

您不能就地运行代码更新,因为可能有问题。所以你做了一个新的代码结账,并在某个端口5678上启动了一个独立的gunicorn B。

在开发/测试数据库上测试新代码之后,您可以:

  • 调整gunicorn指向数据库,但不发送任何请求。
  • 现在,请停止火奴鲁恩A. Nginx,再简短地回答一个错误。
  • 让nginx指向空角B,仍在5678港。
  • 重启nginx。

你说的对吗?您是否只是编写一个脚本来更快地运行这四个操作,并最小化服务器响应错误的持续时间(在步骤2和步骤4之间)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-18 08:28:48

Nginx支持配置重装。使用此功能,更新应用程序可以如下所示:

  1. 启动一个新实例Gunicorn B。
  2. 调整nginx配置,将流量转发给Gunicorn B。
  3. nginx -s reload重新加载nginx配置。在此之后,Gunicorn B将提供新的请求,而Gunicorn A仍将完成对旧请求的处理。
  4. 等待旧的nginx工作进程退出(这意味着在重新加载之前启动的所有请求都已完成),然后停止Gunicorn A。

假设您的应用程序对两个并发实例正确工作,这将为您提供一个零停机时间更新。

nginx文件的有关摘录:

主进程接收到重新加载配置的信号后,将检查新配置文件的语法有效性,并尝试应用其中提供的配置。如果这是成功的,主进程将启动新的辅助进程并向旧的辅助进程发送消息,请求它们关闭。否则,主进程将回滚更改,并继续使用旧配置。旧的辅助进程,接收关闭的命令,停止接受新的连接,并继续服务当前的请求,直到所有这样的请求得到服务。在此之后,旧工作人员将处理退出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57443642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档