在 Debian 上用 Nginx 做负载均衡(反向代理 + upstream) 是非常常见的做法。下面按「最常用 → 进阶」给你一个清晰实操指南。
sudo apt update
sudo apt install nginx -y
启动并设置开机自启:
sudo systemctl enable nginx
sudo systemctl start nginx
sudo nano /etc/nginx/conf.d/loadbalancer.conf
upstream backend {
server 192.168.1.10:8080;
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;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
sudo nginx -t
sudo systemctl reload nginx
✅ 访问 example.com 就会轮询到 3 台后端服务器。
upstream backend {
server 192.168.1.10;
server 192.168.1.11;
}
upstream backend {
server 192.168.1.10 weight=3;
server 192.168.1.11 weight=1;
}
upstream backend {
least_conn;
server 192.168.1.10;
server 192.168.1.11;
}
upstream backend {
ip_hash;
server 192.168.1.10;
server 192.168.1.11;
}
upstream backend {
server 192.168.1.10 max_fails=3 fail_timeout=30s;
server 192.168.1.11 max_fails=3 fail_timeout=30s;
}
失败 3 次后,30 秒内不再转发
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
location / {
proxy_pass http://backend;
}
}
server 127.0.0.1:8080;
proxy_pass https://backend;
需要 stream 模块(Nginx Plus 或自行编译)
upstream app {
least_conn;
server 10.0.0.1:80;
server 10.0.0.2:80;
}
server {
listen 80;
location / {
proxy_pass http://app;
}
}
如果你愿意,可以告诉我:
我可以直接给你一份完整可上线配置。