插件窝 干货文章 linux负载均衡怎么设置

linux负载均衡怎么设置

负载 均衡器 均衡 315    来源:    2025-04-06

在Linux系统中设置负载均衡可以通过多种方式实现,以下是几种常见的方法及详细步骤:


一、基于 Nginx 的负载均衡(应用层)

适用场景:HTTP/HTTPS流量分发
步骤: 1. 安装Nginx
bash sudo apt update && sudo apt install nginx # Debian/Ubuntu sudo yum install nginx # CentOS/RHEL

  1. 配置负载均衡
    编辑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;
           }
       }
    }
    
  2. 重启Nginx

    sudo systemctl restart nginx
    

二、基于 HAProxy 的负载均衡(传输层/应用层)

适用场景:TCP/HTTP高级负载均衡
步骤: 1. 安装HAProxy
bash sudo apt install haproxy # Debian/Ubuntu sudo yum install haproxy # CentOS/RHEL

  1. 配置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
    
  2. 启动HAProxy

    sudo systemctl restart haproxy
    

三、基于 LVS (Linux Virtual Server) 的负载均衡(网络层)

适用场景:高性能四层(L4)负载均衡
步骤: 1. 安装IPVS工具
bash sudo apt install ipvsadm # Debian/Ubuntu sudo yum install ipvsadm # CentOS/RHEL

  1. 配置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
    
  2. 配置后端服务器的VIP
    在每个后端服务器上运行:

    sudo ifconfig lo:0 192.168.1.100 netmask 255.255.255.255 up
    

四、基于 Keepalived 的高可用负载均衡

适用场景:避免单点故障
步骤: 1. 安装Keepalived
bash sudo apt install keepalived # Debian/Ubuntu sudo yum install keepalived # CentOS/RHEL

  1. 配置主负载均衡器/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
       }
    }
    
  2. 配置备用负载均衡器
    修改 stateBACKUP 并降低 priority


五、基于 DNS轮询 的简单负载均衡

适用场景:简单域名分发
方法:在DNS解析中为同一域名添加多个A记录(如 example.com 指向多个IP)。


关键参数调优

  1. 会话保持

    • Nginx: ip_hash
    • HAProxy: cookie SERVERID insert
  2. 健康检查

    • HAProxy: check inter 2000 rise 2 fall 3
  3. 算法选择

    • roundrobin(轮询)、leastconn(最小连接)、source(源IP哈希)

验证负载均衡

curl http://负载均衡器IP
# 或使用工具(如ab)测试
ab -n 1000 -c 100 http://负载均衡器IP/

根据实际需求选择方案,Nginx/HAProxy适合应用层,LVS适合高性能四层场景,Keepalived可提升可用性。