4

我可以想到很多技术来做到这一点:

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

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

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

4

1 回答 1

2

越简单越好,没有灵丹妙药。

  1. 对于单个服务器,优雅重启机制可能会有所帮助。它将启动新进程以接受新请求,并维护旧进程直到旧请求完成。Nginx 已经在使用它,请参阅http://wiki.nginx.org/CommandLine#Stopping_or_Restarting_Nginx

  2. 对于多台服务器,使用反向代理是一种很好的做法。一个示例结构如下所示,使用 Nginx 可以轻松构建: 在此处输入图像描述 如果某些后端服务器发生故障,反向代理可以将请求分发到其他健康的服务器,并且不会影响用户。您可以自定义负载均衡策略来做细粒度的控制。您还可以灵活地添加服务器进行扩展,或者选择服务器进行故障排除或代码更新。

于 2013-10-25T04:05:17.393 回答