怎样实现CentOS FTP服务器的负载均衡
导读:CentOS FTP服务器负载均衡实现指南 一、方案总览与选择 软件负载均衡:使用 HAProxy 或 Nginx Stream 做四层转发,简单、灵活、易维护,适合大多数场景。 内核级方案:使用 LVS(DR)+ Keepalived,...
CentOS FTP服务器负载均衡实现指南
一、方案总览与选择
- 软件负载均衡:使用 HAProxy 或 Nginx Stream 做四层转发,简单、灵活、易维护,适合大多数场景。
- 内核级方案:使用 LVS(DR)+ Keepalived,性能更高、可扩展性强,适合大流量与高可用场景。
- 高可用增强:在任一方案前叠加 Keepalived VIP,避免单点故障。
- 其他:可用 硬件负载均衡器(如 F5) 或 DNS 轮询(简单但无健康检查与连接粘性控制)。
二、方案一 HAProxy四层负载均衡(推荐起步)
- 安装与启用
- 执行:
sudo yum install haproxy -y & & sudo systemctl enable --now haproxy
- 执行:
- 核心配置示例(/etc/haproxy/haproxy.cfg)
- 全局与默认
global log /dev/log local0 log /dev/log local1 notice daemon maxconn 4096 defaults log global mode tcp option tcplog timeout connect 5000ms timeout client 50000ms timeout server 50000ms - 前端与后端
frontend ftp_front bind *:21 default_backend ftp_back backend ftp_back balance roundrobin server ftp1 192.168.1.101:21 check server ftp2 192.168.1.102:21 check
- 全局与默认
- 防火墙放行
- 执行:
sudo firewall-cmd --permanent --add-service=ftp & & sudo firewall-cmd --reload
- 执行:
- 说明
- 此配置为纯四层转发,控制连接由负载均衡器处理;数据连接在被动模式(PASV)下由后端 FTP 服务器直接返回客户端,因此需配合后文的被动端口与防火墙策略。
三、方案二 LVS DR + Keepalived(高性能与高可用)
- 拓扑与角色
- Director(负载均衡器):开启 IP 转发,配置 VIP(如 192.168.1.100);后端为 Real Server(FTP 服务器)。
- Director 配置要点
- 开启转发:
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf & & sudo sysctl -p - 安装工具:
sudo yum install ipvsadm keepalived -y - LVS/Keepalived 示例(/etc/keepalived/keepalived.conf)
vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 42 } virtual_ipaddress { 192.168.1.100/24 } } virtual_server 192.168.1.100 21 { delay_loop 6 lb_algo rr lb_kind DR protocol TCP real_server 192.168.1.101 21 { weight 1 TCP_CHECK { connect_timeout 10 connect_port 21 } } real_server 192.168.1.102 21 { weight 1 TCP_CHECK { connect_timeout 10 connect_port 21 } } } - 启动:
sudo systemctl enable --now keepalived
- 开启转发:
- Real Server 配置要点(DR 模式)
- 在回环接口配置 VIP(/32) 并抑制 ARP:
SNS_VIP=192.168.1.100 ip addr add $SNS_VIP/32 dev lo:0 route add -host $SNS_VIP dev lo:0 echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
- 在回环接口配置 VIP(/32) 并抑制 ARP:
- 说明
- DR 模式要求后端服务器将 VIP 仅绑定在 lo:0,由内核直接回包,避免经由 Director 转发数据连接,性能更佳。
四、FTP被动模式与防火墙关键配置
- 后端 FTP 服务器(以 vsftpd 为例,/etc/vsftpd/vsftpd.conf)
- 启用被动模式并限定端口范围(示例:2121–2130):
pasv_enable=YES pasv_min_port=2121 pasv_max_port=2130 pasv_address=192.168.1.100 # 对外暴露的 VIP(LVS 或 HAProxy 前端地址) - 重启:
sudo systemctl restart vsftpd
- 启用被动模式并限定端口范围(示例:2121–2130):
- 防火墙与 SELinux
- 放行控制与被动端口(示例范围 2121–2130):
sudo firewall-cmd --permanent --add-port=21/tcp sudo firewall-cmd --permanent --add-port=2121-2130/tcp sudo firewall-cmd --reload - SELinux(如启用):
sudo setsebool -P ftp_home_dir on sudo setsebool -P allow_ftpd_full_access on
- 放行控制与被动端口(示例范围 2121–2130):
- 说明
- 被动模式下,客户端数据连接目标为 PASV_ADDRESS:PASV_PORT;因此需确保该地址与端口对客户端可达,并在负载均衡器/防火墙放行对应端口范围。
五、安全、高可用与验证
- 加密传输
- 若使用 FTPS(推荐):在 vsftpd 启用
ssl_enable=YES、force_local_data_ssl=YES、force_local_logins_ssl=YES,并配置证书;防火墙放行 990/tcp(FTPS 控制通道)。HAProxy/Nginx 侧可按需配置 TLS 终止或透传。
- 若使用 FTPS(推荐):在 vsftpd 启用
- 高可用
- 单台负载均衡器仍可能单点,建议在 LVS/HAProxy 前叠加 Keepalived VIP,实现主备自动切换。
- 健康检查与监控
- HAProxy/Nginx 支持后端 TCP 健康检查;建议结合日志与监控(如 Prometheus + Grafana)观察连接数、成功率与延迟。
- 快速验证
- 连接测试:
ftp < 负载均衡器IP>或lftp < 负载均衡器IP>;上传/下载大文件验证吞吐与稳定性;在负载均衡器与后端查看日志:tail -f /var/log/vsftpd/vsftpd.log、tail -f /var/log/haproxy.log。
- 连接测试:
- 共享存储(可选)
- 多台 FTP 服务器需共享数据目录时,可用 NFS 将同一目录挂载到各节点,确保内容一致性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 怎样实现CentOS FTP服务器的负载均衡
本文地址: https://pptw.com/jishu/759180.html
