Debian LAMP集群负载均衡实现指南
一、架构与方案选型
二、方案一 Nginx作为负载均衡器
sudo apt update && sudo apt install nginxhttp {
upstream lamp_backend {
least_conn; # 可选:最少连接
server 10.0.0.11:80 max_fails=3 fail_timeout=30s;
server 10.0.0.12:80 max_fails=3 fail_timeout=30s;
# 可选:ip_hash; # 会话保持(基于客户端IP)
}
server {
listen 80;
server_name www.example.com;
location / {
proxy_pass http://lamp_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;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
max_fails/fail_timeout实现被动健康检查与摘除异常节点。sudo nginx -t && sudo systemctl reload nginx三、方案二 HAProxy作为负载均衡器
sudo apt update && sudo apt install haproxyglobal
log /dev/log local0
maxconn 4096
user haproxy
group haproxy
daemon
defaults
mode http
timeout connect 5s
timeout client 30s
timeout server 30s
frontend http-in
bind *:80
default_backend lamp_servers
backend lamp_servers
balance roundrobin
option httpchk GET /health # 健康检查路径
server web1 10.0.0.11:80 check
server web2 10.0.0.12:80 check
sudo systemctl enable --now haproxy四、数据库与共享存储要点
[mysqld]
server-id=1
log_bin=/var/log/mysql/mysql-bin.log
[mysqld]
server-id=2
relay_log=/var/log/mysql/mysql-relay-bin.log
read_only=1
SHOW MASTER STATUS;的File与Position;从库执行CHANGE MASTER TO ...并START SLAVE;。五、高可用与故障转移
vrrp_script chk_nginx {
script "killall -0 nginx"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication { auth_type PASS; auth_pass 42 }
virtual_ipaddress { 192.168.1.100/24 }
track_script { chk_nginx }
}