按需在两个 Web 服务器之间路由流量

按需在两个 Web 服务器之间路由流量

我在 VM 环境中有两个 Windows 网络服务器,除了使用防火墙(无访问权限)之外,是否有一种简单可靠的方法可以让我根据需要将传入流量重新路由到特定服务器?

假设所有公共流量都流向服务器 a,如果我想将流量更改为服务器 b。我该怎么做?现在,我有一个小脚本可以交换 IP,这样服务器 a 将拥有服务器 b 的 IP,而服务器 b 将拥有服务器 a 的 IP。有没有更好的方法?

谢谢你们

答案1

您需要使用负载平衡来实现这一点。Windows 内置了 NLB,但它缺少一些硬件负载平衡的功能。

答案2

负载平衡的替代方法是重写所有传入请求以指向维护页面。

在 IIS7+ 中,您可以通过app_offline.htm在网站根目录添加一个名为的文件来轻松完成此操作。IIS 将检查此文件,如果存在,则将发出 HTTP/503 并附带 app_offline.htm 文件的内容。

由于您已标记此 Apache2,也许您可​​以使用以下命令执行此操作RewriteRule

RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} != 503
RewriteRule ^(.*)$ /app_offline.htm [R=503,L]

(请注意,我不是 Apache 人——本文粗略地改编自https://stackoverflow.com/a/5447534/415523

请记住,任何图像/脚本/CSS 都需要内联(或数据 URL),或在外部提供(例如通过 static.yourapp.example.org 网站或 CDN),因为它们也可能需要重写。

相关内容