Failover

用於自動故障轉移到第二台伺服器的防火牆或其他解決方案?

  • February 27, 2010

假設這樣的情況:

  • 伺服器 1 - FreeBSD、Apache - 服務於所有網路流量
  • 伺服器 2——FreeBSD、Apache——只是閒置著

這是一種簡單的設置方法,以便如果伺服器 1 發生故障,流量會自動路由到伺服器 2?

關於它的快速頭腦風暴讓我認為必須有某種微不足道的防火牆或硬體設備,我可以在兩個盒子前面設置它可以執行以下操作:

  • 在埠 XXX 上接收請求
  • 嘗試將請求轉發到伺服器 1
  • 如果成功返迴響應
  • 否則嘗試將請求轉發到伺服器 2,返迴響應

附加問題:我熟悉 pfSense ……這可以在 pfSense 中完成嗎?

你有幾個選擇:

  • 建立一個“浮動”IP 地址和一種機制,以便在發生故障時將其從一台主機移動到另一台主機。此類功能由“高可用性”解決方案提供,例如Linux HA 項目Pacemaker

該解決方案不需要額外的硬體。

  • 在兩台伺服器前面放置一個負載均衡代理。這是一個接受來自客戶端的連接,然後將它們傳遞給後端伺服器的系統。通常,可以將代理配置為平衡兩者之間的負載,或者將兩者視為故障轉移目標(僅在主系統發生故障時使用)。您在此類別中有很多選擇:

    • Apache 包含一個負載均衡器;請參閱mod_proxy_balancer文件。
    • Pound是一個易於配置且靈活的 HTTP/HTTPS 代理。
    • Balance是一個簡單的 TCP 代理(這意味著它適用於 HTTP 以外的協議)。還有很多很多其他的。通常,大多數可以充當反向 HTTP 代理的軟體(Squid、nginx、varnish 等)都可以執行這種主動/被動 Web 集群。
  • Linux 虛擬伺服器項目提供了核心級負載平衡解決方案。

此列表中的某些內容應該可以幫助您,或者至少可以讓您朝著正確的方向前進。

您專門詢問了 pfSense。從pfSense 網站

限制

  • 在所有可用伺服器之間平均分配負載 - 此時無法在伺服器之間不均等分配負載。
  • 僅檢查伺服器是否響應 ping 或 TCP 埠連接。無法檢查伺服器是否返回有效內容。

因此,除非文件過時,否則 pfSense 不會做你想做的事。

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