在 Debian 上做 Nginx 集群,通常分两种情况来理解:
下面按最常见、最实用的方案讲。
用户
↓
VIP(虚拟IP)
↓
Nginx A Master
Nginx B Backup
↓
后端服务(Tomcat / Node / PHP / 多个Web)
sudo apt update
sudo apt install nginx -y
sudo vim /etc/nginx/conf.d/upstream.conf
upstream backend {
server 192.168.1.11:8080;
server 192.168.1.12:8080;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
✅ 多个 Nginx 节点的配置要完全一致
sudo apt install keepalived -y
sudo vim /etc/keepalived/keepalived.conf
vrrp_script chk_nginx {
script "/usr/bin/pgrep nginx"
interval 2
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100
}
track_script {
chk_nginx
}
}
state BACKUP
priority 100
其余相同
sudo systemctl enable keepalived
sudo systemctl start keepalived
✅ 此时:
192.168.1.100ip a | grep 192.168.1.100
停掉主节点 Nginx:
systemctl stop nginx
VIP 会漂移到备节点
upstream backend {
ip_hash;
server 192.168.1.11:8080;
server 192.168.1.12:8080;
}
server 192.168.1.11:8080 max_fails=3 fail_timeout=10s;
❌ Nginx 不能“自动同步配置”
✅ 需要:
❌ 单台 Nginx 不算集群
✅ 至少是:
Debian 上 Nginx 集群 = Nginx 负载均衡 + Keepalived 高可用 + 后端服务集群
如果你愿意,我可以:
你现在是 内网还是云服务器?准备几台机器?