我该如何对我的网站域名进行故障转移?

我该如何对我的网站域名进行故障转移?

我有两个 Web 服务器在不同位置运行,并且具有不同的静态 IP:

Web 服务器 1:xxxx Web 服务器 2:zzzz

两个服务器都应指向 test.com 域。假设目前主 Web 服务器已启动并正在运行,DNS 记录 A 指向静态 IP xxxx

现在,如果主服务器出现故障,我该如何通过 test.com 域将用户转移到辅助网络服务器 IP zzzz?

我尝试联系 DNS 注册中心,他们只有名称服务器备份设施,例如 ns1.domain.com、ns2.domain.com。他们不支持监控 HTTP 端口 80,在此端口中,他们可以将记录类型 A 传输到我的辅助 Web 服务器 IP(用于域 test.com)

有什么方法可以将用户重定向到具有相同域 test.com 的辅助服务器,而无需手动更改 IP?

我的 Web 服务器在 ubuntu 18.04 和 20.04 上的 apache 上运行。

谢谢。

更新

我通过创建一个运行 HAProxy 的专用云服务器解决了这个问题。以下是我使用的简单配置。

global
    log /dev/log    local0
    log /dev/log    local1 notice
    chroot /var/lib/haproxy
    stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
    stats timeout 30s
    user haproxy
    group haproxy
    daemon

    # Default SSL material locations
    ca-base /etc/ssl/certs
    crt-base /etc/ssl/private

    # See: https://ssl-config.mozilla.org/#server=haproxy&server-version=2.0.3&config=intermediate
    ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY>        ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
    ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets

 defaults
    log     global
    mode    http
    option http-server-close
    option  httplog
    option  dontlognull
    timeout connect 5000
    timeout client  50000
    timeout server  50000
    errorfile 400 /etc/haproxy/errors/400.http
    errorfile 403 /etc/haproxy/errors/403.http
    errorfile 408 /etc/haproxy/errors/408.http
    errorfile 500 /etc/haproxy/errors/500.http
    errorfile 502 /etc/haproxy/errors/502.http
    errorfile 503 /etc/haproxy/errors/503.http
    errorfile 504 /etc/haproxy/errors/504.http

frontend ft_app
    bind 0.0.0.0:80 name app
    default_backend bk_app

backend bk_app
    server s1 x.x.x.x:80 check
    server s2 z.z.z.z:80 check backup

答案1

当您准备冗余环境时,您应该创建一些您想要保护环境的场景。您还应该为需要做的事情制定时间和金钱预算。

您可以使用 http 负载均衡器(反向代理),如 haproxy、varnish... 您可以使用内容分发网络 (CDN)如果你有更多的流量。

涉及更复杂的解决方案边界网关协议作为如果您需要并且有钱就可以创建。

相关内容