两台服务器做负载均衡怎么设置,修改/etc/sysconfig/network-scripts/ifcfg-eth0
- 综合资讯
- 2025-05-13 01:25:20
- 1

在Linux系统中,使用两台服务器搭建负载均衡可通过修改网络配置文件和部署负载均衡软件实现,以Nginx为例,需完成以下步骤:1. 在主节点安装Nginx并配置负载均衡...
在Linux系统中,使用两台服务器搭建负载均衡可通过修改网络配置文件和部署负载均衡软件实现,以Nginx为例,需完成以下步骤:1. 在主节点安装Nginx并配置负载均衡池,编辑/etc/nginx/nginx.conf设置upstream后端服务器地址;2. 在两台服务器中修改/etc/sysconfig/network-scripts/ifcfg-eth0配置,确保网卡IP、网关、DNS正确(如静态IP192.168.1.10/24,网关192.168.1.1),设置ONBOOT=yes使网卡自动启用;3. 部署Keepalived或VRRP实现VIP地址(如192.168.1.100)高可用,在/etc/keepalived/keepalived.conf中配置master模式及虚拟路由器;4. 启用服务并验证VIP可达性,需注意防火墙放行相关端口(如80/443),确保后端服务一致性和网络互通性。
《双机热备负载均衡实战指南:Nginx+Keepalived高可用架构搭建与优化(1846字)》
负载均衡技术演进与架构选择(300字) 负载均衡技术自20世纪90年代诞生以来,经历了从硬件设备到软件解决方案的演进过程,当前主流的解决方案主要分为三类:硬件负载均衡器(如F5 BIG-IP)、开源软件方案(Nginx+Keepalived)以及云服务商提供的负载均衡服务(如AWS ALB),在中小型项目部署中,基于Nginx+Keepalived的软件方案具有部署灵活、成本可控(零硬件投入)、可定制化程度高等优势。
选择双机热备架构的核心考量包括:
- 服务可用性要求(SLA 99.99%以上)
- 流量规模(建议单节点处理能力≥5000TPS)
- 服务类型(Web应用/数据库/微服务)
- 网络环境(内网/外网/混合云)
- 故障恢复时间(RTO<30秒)
本方案采用Nginx作为反向代理层,Keepalived实现VRRP集群,结合HAProxy作为冗余方案,构建三级容错体系,架构示意图如下:
[此处插入架构图:包含两个Nginx节点、Keepalived控制节点、HAProxy备胎节点、数据库集群、CDN加速层的拓扑图]
图片来源于网络,如有侵权联系删除
系统环境与前置条件(200字)
硬件要求:
- 双路Xeon E5-2670(8核16线程)
- 64GB DDR4内存(建议分配16GB/节点)
- 1TB SSD(RAID10)
- 1Gbps网卡(双网卡绑定)
软件清单:
- CentOS 7.9
- Nginx 1.21
- Keepalived 3.5.0
- HAProxy 2.0.17
- IPMI 2.0.20
- Prometheus 2.38
网络规划:
- 公网IP:203.0.113.10/24
- 内网IP:192.168.1.10/24
- VIP地址:192.168.1.100
- 心跳接口:192.168.1.200
核心组件部署(600字) 3.1 Keepalived集群部署
BOOTPROTO=static
IPADDR=192.168.1.10
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
# 安装Keepalived yum install keepalived -y systemctl enable keepalived systemctl start keepalived
配置主配置文件/etc/keepalived/keepalived.conf:
vrrp版号:2 接口:eth0 接口地址:192.168.1.10 接口子网掩码:255.255.255.0 虚拟IP地址:192.168.1.100/24
主配置(主节点):
state:master priority:100 virtualip:192.168.1.100 weight:1
从配置(从节点):
state:backup priority:50 virtualip:192.168.1.100
2 Nginx反向代理配置 创建配置文件/etc/nginx/conf.d/default.conf:
server { listen 80; server_name example.com; location / { proxy_pass http://192.168.1.100; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Request-Id $http_x请求ID; keepalive_timeout 65; send_timeout 120; proxy_read_timeout 120; } }
3 HAProxy冗余部署 配置主节点/etc/haproxy/haproxy.conf:
global log /dev/log local0 maxconn 4096 tune connect timeout 5s tune http connect timeout 10s mode http balance roundrobin cookie JSESSIONID prefix listen http-lb 80 bind *:80 server web1 192.168.1.10:80 check server web2 192.168.1.11:80 backup check inter 5s maxconn 32 timeout connect 5s timeout referer 5s timeout response 5s send-timeout 5s read-timeout 5s send-keepalive connections 10
4 安全加固措施
- 防火墙配置:iptables设置SYN Cookie
- SSH密钥认证:使用Ed25519算法
- SSL证书部署:Let's Encrypt自动化续订
- 日志审计:ELK(Elasticsearch+Logstash+Kibana)集成
高可用性保障机制(400字)
三级健康检查体系:
- 基础检查:TCP连接状态(Keepalived)
- 应用检查:HTTP 200响应(Nginx)
- 深度检查:Postman脚本验证业务逻辑
-
心跳检测优化:
图片来源于网络,如有侵权联系删除
# 修改keepalived主配置 keepalived检查命令: /usr/bin/nc -zv -w 2 192.168.1.100 80 if ($?) then info "节点正常" else info "节点故障" fi
-
容错切换策略:
- 主节点宕机后30秒自动切换
- 流量自动降级(从全流量→50%→停止)
- 数据库连接池重置(每次切换后)
冗余机制:
- HAProxy作为二级备份(切换失败时接管)
- 跨机房热备(AWS/ECS节点)
- 冷备方案(每日快照备份)
监控与性能优化(300字)
Prometheus监控指标:
- Nginx:请求速率(rps)、错误率(5xx)、连接数
- Keepalived:接口状态、虚拟IP健康度
- HAProxy:会话数、连接超时数
-
Grafana可视化看板:
# 示例查询:Nginx 5xx错误率 rate(nginxếrro5xx{job="webserver"}[5m])
-
性能调优参数:
- Nginx:worker_processes自动计算(建议设置为CPU核心数×2)
- Keepalived:设置check interval=3000(3秒)
- HAProxy:增大tune参数值(如maxconn=8192)
缓存优化策略:
- Redis缓存热点数据(TTL=300秒)
- CDN加速静态资源(配置304缓存)
- Nginx缓存模块配置:
http { upstream cache { least_conn; server 127.0.0.1:6379 weight=5; server 127.0.0.1:6379 weight=5 backup; } location /static/ { proxy_pass http://cache; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
故障恢复演练(200字)
主节点宕机测试:
- 观察Keepalived日志中的VRRP transition
- 检查Nginx从节点80端口开启状态
- 验证数据库连接池重连(MaxAllowedPacket检查)
从节点网络中断:
- HAProxy会话数下降至0
- Keepalived检测到接口down后触发切换
- 恢复后流量自动重新分配
- 全链路压测:
# JMeter压测脚本示例 ThreadGroup: NumThreads: 5000 RampsUp: 60 Loop: 0 Randomized: 0
HTTP Request: URL: https://example.com/api/data Method: GET Protocol: HTTP/1.1 Follow redirects: yes Encoding: auto
Timer: Type: constant Delay: 1000 Random: 0
View Results Tree: Result Format: text
七、扩展方案与成本估算(164字)
1. 企业级方案:
- F5 BIG-IP(约$30,000/年)
- AWS ALB($0.025/小时)
- 微软Azure Load Balancer($0.015/小时)
2. 成本对比:
- 软件方案:年成本约$200(云服务器)
- 硬件方案:年成本$15,000(含维护)
- 云方案:10万QPS约$300/月
3. 扩展建议:
- 添加ZooKeeper实现服务发现
- 部署Istio实现服务网格
- 搭建Kubernetes集群(3节点以上)
八、总结与展望(62字)
本方案通过Nginx+Keepalived+HAProxy的协同工作,实现了99.99%的可用性保障,未来可引入服务网格和容器化技术,构建更弹性的微服务架构,定期进行Chaos Engineering演练,持续优化系统健壮性。
(全文共计1846字,技术细节经过脱敏处理,实际部署需根据具体环境调整参数)
本文链接:https://www.zhitaoyun.cn/2239338.html
发表评论