首页主机资讯Linux服务器如何负载均衡

Linux服务器如何负载均衡

时间2025-11-05 21:08:03发布访客分类主机资讯浏览1328
导读:Linux服务器负载均衡实现指南 负载均衡是提升Linux服务器集群性能、可靠性的关键技术,通过将请求分发到多个后端服务器,避免单点过载。以下是常见工具及详细配置步骤: 1. Nginx负载均衡(推荐场景:HTTP/HTTPS高并发) Ng...

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

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

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

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

安装Nginx

  • Debian/Ubuntu系统:sudo apt update & & sudo apt install nginx -y
  • CentOS/RHEL系统:sudo yum install epel-release -y & & sudo yum install nginx -y

配置负载均衡

编辑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;

        }

    }

}
    

启动与验证

  • 检查配置语法:sudo nginx -t
  • 重启Nginx:sudo systemctl restart nginx
  • 测试负载均衡:用curl http://yourdomain.com多次访问,观察请求是否分发到不同后端服务器。

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

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

安装HAProxy

  • Debian/Ubuntu系统:sudo apt update & & sudo apt install haproxy -y
  • CentOS/RHEL系统:sudo yum install haproxy -y

配置负载均衡

编辑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

启动与验证

  • 启动HAProxy:sudo systemctl start haproxy
  • 设置开机自启:sudo systemctl enable haproxy
  • 测试:用curl http://your-server-ip访问,观察请求分发情况。

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

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

安装ipvsadm(LVS管理工具)

  • Debian/Ubuntu系统:sudo apt install ipvsadm -y
  • CentOS/RHEL系统:sudo yum install ipvsadm -y

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

假设:

  • 负载均衡器(Director)IP:192.168.1.100
  • 后端真实服务器(Real Server)IP:192.168.1.101192.168.1.102

步骤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规则

注意事项

  • DR模式下,后端服务器需配置VIP在回环接口(lo:0),并设置内核参数net.ipv4.conf.all.arp_ignore=1net.ipv4.conf.all.arp_announce=2,避免ARP冲突。

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

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

安装Keepalived

  • Debian/Ubuntu系统:sudo apt install keepalived -y
  • CentOS/RHEL系统:sudo yum install keepalived -y

配置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
    }

}
    

启动与验证

  • 启动Keepalived:sudo systemctl start keepalived
  • 设置开机自启:sudo systemctl enable keepalived
  • 测试故障转移:停止主节点的Keepalived服务,观察VIP是否自动切换到备节点。

负载均衡策略选择

  • 轮询(Round Robin):默认策略,按顺序分发请求,适用于后端服务器性能相近的场景。
  • 加权轮询(Weighted Round Robin):根据服务器性能设置权重(如weight=3),高性能服务器分配更多请求。
  • 最少连接数(Least Connections):将请求发送到当前连接数最少的服务器,适用于长连接场景(如数据库连接)。
  • IP哈希(IP Hash):根据客户端IP计算哈希值,固定访问同一服务器,实现会话保持(如购物车场景)。

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

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux服务器如何负载均衡
本文地址: https://pptw.com/jishu/743320.html
Linux系统如何更新升级 JS代码如何避免跨站脚本攻击

游客 回复需填写必要信息