Ubuntu
如何故障轉移我的網站域?
我有兩個 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 。