Python 在不影响用户的情况下重新启动web服务器?

Python 在不影响用户的情况下重新启动web服务器?,python,nginx,dns,webserver,restart,Python,Nginx,Dns,Webserver,Restart,为此,我可以想到一系列技巧: 在不同的端口和/或IP上设置副本web服务器,然后使用DNS作为负载平衡器;一次重新启动一台服务器 通过隐式副本利用更显式的负载平衡(PaaS如Heroku和OpenShift使用) 使用一些内置机制(例如:在nginx中) 我正在IaaS解决方案中工作,将设置git和一些侦听器来处理整个设置 重新启动web服务器的最佳方法是什么,这样我最新版本的Python web应用程序就可以上线,而不会明显影响网站访问者/用户/客户端?越简单越好,没有灵丹妙药 对于单服务

为此,我可以想到一系列技巧:

  • 在不同的端口和/或IP上设置副本web服务器,然后使用DNS作为负载平衡器;一次重新启动一台服务器
  • 通过隐式副本利用更显式的负载平衡(PaaS如Heroku和OpenShift使用)
  • 使用一些内置机制(例如:在nginx中)
我正在IaaS解决方案中工作,将设置
git
和一些侦听器来处理整个设置


重新启动web服务器的最佳方法是什么,这样我最新版本的Python web应用程序就可以上线,而不会明显影响网站访问者/用户/客户端?越简单越好,没有灵丹妙药

  • 对于单服务器,优雅的重启机制可能会有所帮助。它将启动新进程来接受新请求,并维护旧进程,直到旧请求完成。Nginx已经在使用它,请参阅

  • 对于多个服务器,使用反向代理是一种很好的做法。示例结构如下所示,可以使用Nginx轻松构建: 如果某些后端服务器出现故障,反向代理可以向其他正常的服务器发送请求,并且不会影响用户。您可以自定义负载平衡策略以进行细粒度控制。您还可以灵活地添加服务器进行扩展,或者选择服务器进行故障排除或代码更新