python – 重新启动Web服务器而不影响用户?

我可以想到有很多技巧可以做到这一点:

>在不同的端口和/或IP上设置副本Web服务器,然后使用DNS作为负载均衡器;一次重启一台服务器
>使用更明确的负载平衡(如Heroku和OpenShift使用的PaaS)和隐式副本
>使用一些内置机制(例如:在nginx中)

我正在IaaS解决方案中工作,并将设置git和一些监听器来处理整个设置.

什么是重新启动网络服务器的最佳方法 – 所以我的Python网络应用程序的最新版本可以上线 – 而不会明显影响网站访问者/用户/客户?

最佳答案 越简单越好,没有银弹.

>对于单个服务器,正常重启机制可能会有所帮助.它将启动新进程以接受新请求,并维护旧进程,直到旧请求完成. Nginx已经使用了这个,见http://wiki.nginx.org/CommandLine#Stopping_or_Restarting_Nginx
>对于多个服务器,使用反向代理是一种很好的做法.示例结构如下所示,可以使用Nginx轻松构建:

如果某些后端服务器发生故障,则反向代理可以将请求分派给其他正常的服务器,并且不会影响用户.您可以自定义负载平衡策略以进行细粒度控制.您还可以灵活地添加服务器以进行扩展,或者选择服务器进行故障排除或代码更新.

点赞