Nginx是一款高性能的HTTP/反向代理服务器,可作为七层负载均衡器,支持HTTP、HTTPS等协议,适用于需要细粒度流量控制的场景(如根据URL路径、域名分发请求)。
核心步骤:
sudo apt install nginx,CentOS用sudo yum install epel-release && sudo yum install nginx)。/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf),添加upstream块定义后端服务器组,并指定负载均衡算法(如轮询rr、加权轮询wrr、最少连接lc等)。示例如下:http { upstream backend { server backend1.example.com; # 后端服务器1 server backend2.example.com; # 后端服务器2 server backend3.example.com; # 后端服务器3 } server { listen 80; location / { proxy_pass http://backend; # 将请求转发至后端服务器组 } } } sudo nginx -t检查配置语法,无误后用sudo systemctl reload nginx重新加载配置。HAProxy是一款专业的负载均衡软件,支持四层(TCP/UDP)和七层(HTTP/HTTPS)转发,具备会话保持、健康检查、URL检测等功能,适用于高并发Web应用、API网关等场景。
核心步骤:
sudo apt install haproxy,CentOS用sudo yum install epel-release && sudo yum install haproxy。/etc/haproxy/haproxy.cfg),定义frontend(监听端口)和backend(后端服务器组)。示例如下:frontend http_front bind *:80 # 监听80端口 mode http default_backend servers # 默认转发至servers后端 backend servers mode http server server1 192.168.1.1:80 check # 后端服务器1,启用健康检查 server server2 192.168.1.2:80 check # 后端服务器2,启用健康检查 server server3 192.168.1.3:80 check # 后端服务器3,启用健康检查 sudo systemctl start haproxy启动服务,通过curl或浏览器访问虚拟机IP,验证请求是否分发至后端服务器。LVS是Linux内核级负载均衡解决方案,基于IP负载均衡技术,性能极强(可处理百万级并发),适用于大型Web集群、数据库集群等高吞吐量场景。常见模式包括NAT(网络地址转换)、DR(直接路由)、TUN(IP隧道)。
核心步骤(以DR模式为例):
ipvsadm(如Ubuntu用sudo apt install ipvsadm,CentOS用sudo yum install ipvsadm),用于管理LVS规则。sudo ipvsadm -A -t 192.168.1.110:80 -s rr(192.168.1.110为VIP,rr为轮询算法)。sudo ipvsadm -a -t 192.168.1.110:80 -r 192.168.1.12:80 -g(192.168.1.12为RealServer1,-g表示DR模式)。sudo ipvsadm --set 30 5(30秒超时,5秒检查间隔)。/etc/sysctl.conf):net.ipv4.ip_forward = 0 net.ipv4.conf.lo.arp_ignore = 1 # 忽略非本机ARP请求 net.ipv4.conf.lo.arp_announce = 2 # 发送ARP时使用指定接口IP net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 sudo sysctl -p。sudo ifconfig lo:0 192.168.1.110 broadcast 192.168.1.110 netmask 255.255.255.255 up。sudo route add -host 192.168.1.110 dev lo:0。http://192.168.1.110),用ipvsadm -ln查看连接数,验证请求是否分发至各RealServer。若虚拟机运行在KVM等虚拟化平台上,可通过分布式虚拟交换机(如Open vSwitch)实现负载均衡,将多个虚拟机连接至同一虚拟交换机,利用其路由、负载均衡功能分配流量。
核心步骤:
openvswitch-switch(如Ubuntu用sudo apt install openvswitch-switch)。sudo ovs-vsctl add-br br0(br0为虚拟交换机名称)。sudo ovs-vsctl add-port br0 vm1-port)。libvirt)。以上方法覆盖了从应用层到内核层、从软件到虚拟化的负载均衡方案,可根据业务需求(如并发量、协议类型、性能要求)选择合适的工具。例如,小型Web应用可选择Nginx(配置简单),大型高并发场景可选择LVS(性能最强),需要细粒度控制的场景可选择HAProxy(支持七层URL检测)。