当 IIS 关闭时将所有流量转向 Apache

当 IIS 关闭时将所有流量转向 Apache

我有一台运行在 Windows Server 2012 上的专用服务器。它使用 IIS 托管多个网站。我也在此服务器上安装了 Apache 服务器。我需要知道如何在 IIS 关闭或暂停时将 IIS 上托管的所有网站的所有流量重定向到 Apache 上的特定页面或资源?即,在页面上显示简单消息,告知服务器已关闭,而不是显示默认消息 404 未找到。

答案1

您需要在两者前面安装一个负载平衡器。您可以使用在端口 80 上服务的 apache 负载平衡器 (alb)。在更高的端口上设置 IIS 和 apache web 服务器。让负载平衡器充当故障转移而不是真正的负载平衡。因此,alb 监听端口 80,任何请求都会被代理到更高端口(例如 8181)上的 IIS。这样,一旦 IIS 出现故障,alb 就会检测到故障并切换到在另一个高端口(例如 8182)上运行的 apache web 服务器。

Apache 并不是唯一的软件负载均衡器,您可以使用 nginx 或其他软件来完成相同的工作。概念是一样的。

编辑:

以下是 nginx 故障转移(主动/被动)设置的示例:

upstream backend {
    server 127.0.0.1:8181 fail_timeout=5s max_fails=3;
    server 127.0.0.1:8182 backup;
}

server {
    listen 80;
    server_name whatevs.com;

    location / {
        proxy_pass http://backend;
    }
}

如果第一个后端(127.0.0.1:8181)失败 3 次(5 秒超时),nginx 将切换到备份主机(127.0.0.1:8182)。请注意,IP 可以相同,也可以使用虚拟 ip,但如果使用相同的 ip,端口必须不同。

希望这可以帮助 :-)

相关内容