Ubuntu

如何故障轉移我的網站域?

  • July 14, 2020

我有兩個 Web 伺服器在不同的位置執行,具有不同的靜態 IP:

網路伺服器 1:xxxx 網路伺服器 2:zzzz

兩台伺服器都應指向 test.com 域。假設目前,主 Web 伺服器已啟動並執行,並且 DNS 記錄 A 指向靜態 IP xxxx

現在,如果主伺服器出現故障,我如何通過 test.com 域將使用者轉移到輔助網路伺服器 IP zzzz?

我嘗試聯繫 DNS 系統資料庫,他們只有名稱伺服器備份工具範例。ns1.domain.com,ns2.domain.com。他們不支持監控 HTTP 埠 80,他們可以在其中將記錄類型 A 傳輸到我的域 test.com 的輔助 Web 伺服器 IP

有什麼方法可以將使用者重定向到具有相同域 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

當您為冗餘準備環境時,您應該創建一些您想要保護您的環境的方案。此外,您應該有預算作為您需要做的時間和金錢。

您可以使用 http 負載均衡器(反向代理),如 haproxy、varnish…如果您有更多流量,您可以使用CDN 。

如果您需要並且有錢,可以創建涉及BGPAS的更複雜的解決方案。

引用自:https://serverfault.com/questions/1024988