我们今天从客户那里收到了一个有趣的“要求”。
他们希望在 Web 应用程序上实现100% 的正常运行时间和异地故障转移。从我们的 Web 应用程序的角度来看,这不是问题。它旨在能够跨多个数据库服务器等进行横向扩展。
但是,从网络问题来看,我似乎无法弄清楚如何使其工作。
简而言之,应用程序将存在于客户端网络中的服务器上。内部和外部人员都可以访问它。他们希望我们维护一个系统的异地副本,如果他们的场所发生严重故障,该副本将立即恢复并接管。
现在我们知道内部人(信鸽?)绝对没有办法解决它,但他们希望外部用户甚至不会注意到。
坦率地说,我对这可能是怎么做到的一无所知。似乎如果他们失去 Internet 连接,那么我们将不得不进行 DNS 更改以将流量转发到外部机器......当然,这需要时间。
想法?
更新
我今天与客户进行了讨论,他们澄清了这个问题。
他们坚持 100% 的数字,说即使发生洪水,应用程序也应该保持活动状态。但是,只有当我们为他们托管时,该要求才会生效。他们表示,如果应用程序完全存在于他们的服务器上,他们将处理正常运行时间要求。你可以猜到我的反应。
从阅读来看,似乎不推荐 DNS 故障转移,因为 DNS 不是为它设计的。但是,如果您在不同子网上有两个 Web 服务器托管冗余内容,那么还有哪些其他方法可以确保在一台服务器出现故障时将所有流量路由到实时服务器?
对我来说,似乎 DNS 故障转移是这里唯一的故障转移选项,但共识是这不是一个好的选择。然而像 DNSmadeeasy.com 这样的服务提供了它,所以它一定有它的优点。任何意见?
我正在使用 nginx 和 NginxHttpUpstreamModule 进行负载平衡。我的配置很简单:
upstream lb {
server 127.0.0.1:8081;
server 127.0.0.1:8082;
}
server {
listen 89;
server_name localhost;
location / {
proxy_pass http://lb;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Run Code Online (Sandbox Code Playgroud)
但是使用此配置,当 2 个后端服务器之一关闭时,nginx 仍将请求路由到它,并且导致一半时间超时:(
是否有任何解决方案可以让 nginx 在检测到关闭的服务器时自动将请求路由到另一台服务器。
谢谢你。
我正在尝试将 nginx 设置为具有大量后端服务器的反向代理。我想按需启动后端(在第一个请求时),所以我有一个控制过程(由 HTTP 请求控制),它根据它收到的请求启动后端。
我的问题是配置 nginx 来做到这一点。这是我到目前为止所拥有的:
server {
listen 80;
server_name $DOMAINS;
location / {
# redirect to named location
#error_page 418 = @backend;
#return 418; # doesn't work - error_page doesn't work after redirect
try_files /nonexisting-file @backend;
}
location @backend {
proxy_pass http://$BACKEND-IP;
error_page 502 @handle_502; # Backend server down? Try to start it
}
location @handle_502 { # What to do when the backend server is not up
# Ping our control server to start the …Run Code Online (Sandbox Code Playgroud) 是否有适合与 Windows Server 2008/SQL Server 一起使用以进行故障转移群集的生产质量 iSCSI SAN?
到目前为止,我只见过戴尔的 MD3000i 和惠普的 MSA 2000 (2012i),它们的磁盘配置最少,价格都在 6000 美元左右。Buffalo(是的,我知道)有一个 1000 美元的设备支持 iSCSI,但他们说它不适用于 2008 故障转移集群。
我有兴趣在生产环境中看到适合故障转移的东西,但 IO 要求非常低。(集群,比如说,一个 30GB 的数据库。)
至于使用软件:在 Windows 上,StarWind 似乎有一个很好的解决方案。但这实际上比购买硬件 SAN 更划算。(据我所知,只有企业版支持拥有副本,而且一个许可证需要 3000 美元。)
我在想我可以使用 Linux,比如 DRBD + iSCSI 目标就可以了。但是,我还没有看到任何免费或低成本的 iSCSI 软件支持 SCSI-3 持久保留,这是 Windows 2008 故障转移群集所需要的。
我知道 6000 美元并不多,只是想看看是否有实用的更便宜的解决方案。最后,是的,该软件价格昂贵,但许多小型企业获得 MS BizSpark,因此 Windows 2008 Enterprise / SQL 2008 许可证是完全免费的。
windows-server-2008 cluster iscsi storage-area-network failover
我正在寻找负载平衡和故障转移策略的解决方案,主要用于大型 Web 应用程序。我们有许多服务需要平衡,例如 web、MySQL 和许多其他基于 HTTP 或 TCP 的服务。但我不确定它们的优缺点是什么,我应该选择哪个。
如果大多数浏览器从 DNS 服务器获得多个 A 记录,它们会如何表现?只要可以访问就坚持使用一个IP(并且只有在IP关闭时才使用另一个)?或者他们总是无缘无故地切换?
如果当前的大多数浏览器都坚持使用一个 IP,那么 DNS-RR 作为一种简单的故障转移解决方案对我来说就足够了。
我们有一个需要高度可用的 SaaS 应用程序。我们已经拥有一个昂贵且维护良好的 Hyper-V 故障转移集群,但今天我们托管该集群的数据中心断电了五个小时,使我们完全离线。所以现在我们想知道是否有更好的方法是在两个独立的数据中心使用服务器。假设我们让所有的后端文件复制和数据复制在这两个站点之间工作,我们想知道如何处理前端路由——难怪我们如何解决这个问题,我们总是以负载均衡器结束单点故障。
所以问题是......我们如何在两个托管站点之间设置负载平衡,以使负载平衡器不是单点故障?有没有办法使用两个单独的负载平衡器,每个站点一个?我们应该考虑轮询 DNS 吗?
我在配置 nginx 时遇到问题。
我使用 nignx 作为反向代理。我想将所有请求发送到我的第一台服务器。如果第一台服务器关闭,我想向第二台服务器发送请求。
简而言之,如何在没有负载平衡的情况下拥有故障转移解决方案?
我明白,要在 HAProxy 负载平衡设置上进行故障转移,您需要两台运行 HAproxy 的机器(并将其路由到多个网络服务器实例)。但是在这种情况下,比如说 abcd.com,我们如何将此流量拆分/路由到 2 个 IP 地址而不是一个?DNS 通常将域名解析为单个 IP。我们如何使用免费/廉价的工具/服务来做到这一点?