linux

Linux服务器如何负载均衡

小樊
43
2025-11-05 12:26:53
栏目: 云计算

Linux服务器负载均衡实现指南

负载均衡是提升Linux服务器集群性能、可靠性的关键技术,通过将请求分发到多个后端服务器,避免单点过载。以下是常见工具及详细配置步骤:

1. Nginx负载均衡(推荐场景:HTTP/HTTPS高并发)

Nginx作为高性能反向代理服务器,支持HTTP、HTTPS和TCP负载均衡,配置灵活且资源占用低。

安装Nginx

配置负载均衡

编辑Nginx配置文件(如/etc/nginx/conf.d/loadbalancer.conf),添加以下内容:

http {
    upstream backend {
        # 轮询(默认,按顺序分发请求)
        server 192.168.1.101:80;
        server 192.168.1.102:80;
        # 加权轮询(weight越高,分配请求越多,适用于服务器性能差异)
        # server 192.168.1.101:80 weight=3;
        # server 192.168.1.102:80 weight=1;
        # IP Hash(同一客户端IP固定访问同一服务器,实现会话保持)
        # ip_hash;
    }

    server {
        listen 80;
        server_name yourdomain.com;  # 替换为你的域名或IP

        location / {
            proxy_pass http://backend;  # 转发到后端服务器组
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}

启动与验证

2. HAProxy负载均衡(推荐场景:TCP/HTTP高吞吐量)

HAProxy是专注于负载均衡的专业工具,支持百万级并发连接,适合游戏、电商等场景。

安装HAProxy

配置负载均衡

编辑HAProxy配置文件(/etc/haproxy/haproxy.cfg),添加以下内容:

global
    log /dev/log local0
    log /dev/log local1 notice
    daemon

defaults
    log global
    mode http  # 模式设为HTTP(若为TCP负载均衡,改为mode tcp)
    option httplog
    option dontlognull
    timeout connect 5000ms
    timeout client 50000ms
    timeout server 50000ms

frontend http_front
    bind *:80  # 监听80端口
    default_backend http_back  # 转发到后端服务器组

backend http_back
    balance roundrobin  # 负载均衡算法(轮询,默认)
    server server1 192.168.1.101:80 check  # check表示开启健康检查
    server server2 192.168.1.102:80 check
    # 最少连接数算法(适用于长连接场景)
    # balance leastconn

启动与验证

3. LVS(Linux Virtual Server)负载均衡(推荐场景:超高并发、内核级性能)

LVS是Linux内核级负载均衡,支持NAT、DR、TUN三种模式,性能极高,适合电信级应用。

安装ipvsadm(LVS管理工具)

配置LVS-DR模式(直接路由,性能最优)

假设:

步骤1:启用IP转发

echo 1 > /proc/sys/net/ipv4/ip_forward  # 临时生效
# 永久生效:编辑/etc/sysctl.conf,添加net.ipv4.ip_forward=1,然后执行sysctl -p

步骤2:配置虚拟服务(VIP)

ipvsadm -A -t 192.168.1.100:80 -s rr  # 添加虚拟服务,rr表示轮询算法

步骤3:添加后端真实服务器

ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.101:80 -m  # -m表示NAT模式(若用DR模式,改为-g)
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.102:80 -m

步骤4:查看规则

ipvsadm -Ln  # 查看当前LVS规则

注意事项

4. Keepalived负载均衡(推荐场景:高可用性故障转移)

Keepalived通过VRRP协议实现IP热备份,常与Nginx/HAProxy结合,确保负载均衡器的高可用。

安装Keepalived

配置Keepalived

编辑主负载均衡器的配置文件(/etc/keepalived/keepalived.conf):

vrrp_instance VI_1 {
    state MASTER  # 主节点设为MASTER,备节点设为BACKUP
    interface eth0  # 监听的网卡(根据实际情况修改)
    virtual_router_id 51  # 虚拟路由ID(同一网络内唯一)
    priority 100  # 优先级(主节点高于备节点,如100 vs 90)
    advert_int 1  # 心跳间隔(秒)

    authentication {
        auth_type PASS
        auth_pass 1111  # 密码(主备节点一致)
    }

    virtual_ipaddress {
        192.168.1.200/24  # 虚拟IP(VIP),客户端访问此IP
    }
}

启动与验证

负载均衡策略选择

以上方案覆盖了不同场景的负载均衡需求,可根据服务器规模、性能要求选择合适的工具。例如,中小型网站可选择Nginx,大型游戏平台可选择LVS,需要高可用的场景则需结合Keepalived。

0
看了该问题的人还看了