1.
准备与前提检查
- 确认你已有至少2台及以上
菲律宾原生IP的服务器(建议3台:2台应用+1台备份或LB)。
- 确认每台服务器的公网IP、子网掩码、网关、以及SSH访问(Root或sudo权限)。
- 检查上游带宽与运营商策略(部分菲律宾IP可能有端口限制),必要时与供应商沟通放行。
2.
基础网络与系统设置
- 更新系统并设置时区:sudo apt update && sudo apt -y upgrade; sudo timedatectl set-timezone Asia/Manila。
- 固定内网IP或确保DHCP分配到固定地址;在 /etc/netplan 或 /etc/network/interfaces 配置静态IP。
- 打开必要端口:sudo ufw allow 80/tcp; sudo ufw allow 443/tcp; sudo ufw allow 22/tcp; sudo ufw enable。
3.
选择负载均衡方案(HAProxy 或 Nginx 或 LVS)
- 小型到中型网站推荐 HAProxy(轻量、易配置、健康检查强);Web 静态或反向代理可用 Nginx;高性能四层可用 LVS。
- 本文以 HAProxy + Keepalived (VRRP) 实现主动-热备与会话保持为主,示例基于 Ubuntu。
4.
安装 HAProxy 并配置基本示例
- 安装:sudo apt install -y haproxy。
- 编辑 /etc/haproxy/haproxy.cfg(关键段示例):
frontend http-in
bind *:80
mode http
default_backend web-backend
backend web-backend
mode http
balance roundrobin
option httpchk GET /health
server web1 203.0.113.11:80 check inter 2000 rise 2 fall 3
server web2 203.0.113.12:80 check inter 2000 rise 2 fall 3
- 启动并查看状态:sudo systemctl restart haproxy; sudo systemctl status haproxy。
5.
使用 Keepalived 实现 VIP 高可用(示例)
- 安装:sudo apt install -y keepalived。
- /etc/keepalived/keepalived.conf 示例核心配置:
vrrp_instance VI_1 {
state MASTER # 或 BACKUP
interface eth0
virtual_router_id 51
priority 100 # 主节点较高
authentication { auth_type PASS; auth_pass secret }\
virtual_ipaddress { 203.0.113.100 }
}
- 启动:sudo systemctl enable --now keepalived。这样外网只指向 VIP 203.0.113.100,由主备控制。
6.
会话保持、SSL 与缓存优化
- 会话保持:HAProxy 使用 stick-table 或 cookie。示例:backend ... cookie SERVERID insert indirect nocache
server web1 203.0.113.11:80 cookie s1 check ...。
- SSL:推荐在 HAProxy 终端做 TLS 终止,证书放 /etc/haproxy/certs/,haproxy 配置 bind *:443 ssl crt /etc/haproxy/certs/site.pem。
- 缓存:静态内容建议使用 CDN(优先菲律宾周边)或在 Nginx 层启用 proxy_cache 缓存减少后端压力。
7.
监控、健康检查与流量测试
- 健康检查:HAProxy 的 option httpchk 与服务器 check 参数;Keepalived 可配置 track_script。
- 常用测试:使用 curl 检查 VIP:curl -I http://203.0.113.100/health;使用 ab 或 hey 做并发压测:hey -n 1000 -c 50 http://203.0.113.100/。
- 监控建议:Prometheus + Grafana、结合 HAProxy Exporter,或者使用商业监控(Datadog)观察连接数、响应时间、后端状态。
8.
常见故障排查与优化建议
- 后端被标为 DOWN:检查健康检查路径、防火墙、后端服务日志。
- VIP 不漂移:检查 keepalived 日志、priority、interface 名称是否一致,并确认没有同网段冲突。
- 性能瓶颈:看 CPU、网络 I/O、连接数限制(ulimit 与 sysctl net.ipv4.ip_local_port_range、somaxconn)。调整 haproxy tune.bufsize 等参数。
9.
问:菲律宾原生IP服务器做负载均衡,DNS是否需要额外配置?
- 问:DNS 是否直接指向每台服务器还是指向 VIP?常见做法是什么?
10.
答:DNS 应指向 VIP 或使用 GeoDNS/Anycast
- 答:推荐把公共域名 A 记录指向 Keepalived 提供的 VIP(例如 203.0.113.100),这样外部流量由 VIP 分发到 HAProxy。若分布跨多个区域,可使用 GeoDNS 或云厂商的负载均衡(带 Anycast/Latency Routing)。
11.
问:如何验证切换/故障恢复是否生效?
- 问:模拟主节点宕机后,如何判断 VIP 是否切换到备节点?
12.
答:通过日志、ping、以及流量验证
- 答:在主节点关闭 keepalived 或断开网络,检查备节点 keepalived 日志(/var/log/syslog)是否显示 VRRP 切换;从外网 ping VIP 与 curl VIP 查看响应;同时观察 HAProxy 后端状态、应用日志确认请求被接收。
来源:菲律宾原生ip服务器购买后实现负载均衡的实操指南