在Linux系统中设置负载均衡可以通过多种方式实现,以下是几种常见的方法及详细步骤:
适用场景:HTTP/HTTPS流量分发
步骤:
1. 安装Nginx
bash
sudo apt update && sudo apt install nginx # Debian/Ubuntu
sudo yum install nginx # CentOS/RHEL
配置负载均衡
编辑Nginx配置文件(如 /etc/nginx/nginx.conf
或 /etc/nginx/conf.d/load_balancer.conf
):
http {
upstream backend {
# 定义后端服务器列表(支持权重、健康检查等)
server 192.168.1.10:80 weight=3; # 权重3
server 192.168.1.11:80;
server 192.168.1.12:80 backup; # 备用服务器
}
server {
listen 80;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
}
}
}
重启Nginx
sudo systemctl restart nginx
适用场景:TCP/HTTP高级负载均衡
步骤:
1. 安装HAProxy
bash
sudo apt install haproxy # Debian/Ubuntu
sudo yum install haproxy # CentOS/RHEL
配置HAProxy
编辑 /etc/haproxy/haproxy.cfg
:
frontend http_front
bind *:80
default_backend http_back
backend http_back
balance roundrobin # 轮询算法
server server1 192.168.1.10:80 check
server server2 192.168.1.11:80 check
server server3 192.168.1.12:80 check
启动HAProxy
sudo systemctl restart haproxy
适用场景:高性能四层(L4)负载均衡
步骤:
1. 安装IPVS工具
bash
sudo apt install ipvsadm # Debian/Ubuntu
sudo yum install ipvsadm # CentOS/RHEL
配置LVS(DR模式示例)
# 在负载均衡器上执行
sudo ipvsadm -A -t 192.168.1.100:80 -s rr
sudo ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.10:80 -g
sudo ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.11:80 -g
配置后端服务器的VIP
在每个后端服务器上运行:
sudo ifconfig lo:0 192.168.1.100 netmask 255.255.255.255 up
适用场景:避免单点故障
步骤:
1. 安装Keepalived
bash
sudo apt install keepalived # Debian/Ubuntu
sudo yum install keepalived # CentOS/RHEL
配置主负载均衡器(/etc/keepalived/keepalived.conf
)
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
virtual_ipaddress {
192.168.1.100/24
}
}
配置备用负载均衡器
修改 state
为 BACKUP
并降低 priority
。
适用场景:简单域名分发
方法:在DNS解析中为同一域名添加多个A记录(如 example.com
指向多个IP)。
会话保持:
ip_hash
cookie SERVERID insert
健康检查:
check inter 2000 rise 2 fall 3
算法选择:
roundrobin
(轮询)、leastconn
(最小连接)、source
(源IP哈希)curl http://负载均衡器IP
# 或使用工具(如ab)测试
ab -n 1000 -c 100 http://负载均衡器IP/
根据实际需求选择方案,Nginx/HAProxy适合应用层,LVS适合高性能四层场景,Keepalived可提升可用性。