Linux

2 個 FTP 伺服器之間的負載平衡

  • January 27, 2020

我正在嘗試在兩台伺服器之間平衡 ftp。目前有兩台伺服器指向 ftp.domain.com,第二台伺服器在技術上用於容錯,但我想平衡兩台伺服器之間的流量。我怎樣才能做到這一點?我想製作一個簡單的腳本,將使用者從 ftp.domain 重定向到 01.ftp.domain 和 02.ftp.domain 等,但問題是 FTP 應用程序不讀取頁面,所以如果使用者嘗試登錄 ftp.domain 它不會將它們重定向到任何地方。

要對伺服器進行負載平衡,您應該同時考慮命令和數據通道。要負載平衡命令通道,我建議您使用 HAProxy。如果您使用它,您應該在/etc/haproxy/haproxy.cfg以下內容中指定:

listen ftp-lb00
   bind IP:21
   mode tcp
   option tcplog
   balance leastconn
   server ftp-serv00 192.168.1.1:21 check
   server ftp-serv01 192.168.1.2:21 check

這裡的 IP 是公共 IP,而連接隨後被重定向到 192.168.1.0/24 網路。您還應該在iptables. 有關執行此操作的說明,您可以在此處查看接受的答案(如何使用 iptables 進行移植?)。

要執行數據通道的負載平衡,您應該在終端中以 root 身份執行這些命令

iptables -A POSTROUTING -s 192.168.1.1/32 -o eth1 -j SNAT --to-source IP
iptables -A POSTROUTING -s 192.168.1.2/32 -o eth1 -j SNAT --to-source IP

這些設置對所謂的活動數據通道有效。有關被動數據通道案例的設置和更詳細的說明,請參閱本文(https://gist.github.com/erkie/922996a2ec4125d79c7f8772cda328ce)。

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