在 Debian 上用 Nginx 配置负载均衡,通常是使用 upstream + proxy_pass 来实现反向代理和流量分发。下面给你一个从安装到配置的完整示例。
sudo apt update
sudo apt install nginx -y
启动并设置开机自启:
sudo systemctl enable nginx
sudo systemctl start nginx
推荐新建一个站点配置:
sudo vim /etc/nginx/conf.d/load_balancer.conf
upstream backend {
# 负载均衡算法(默认 round-robin)
# least_conn; # 最少连接
# ip_hash; # 按 IP 绑定
server 192.168.1.10:8080 weight=3;
server 192.168.1.11:8080;
server 192.168.1.12:8080 backup; # 备份节点
}
说明:
weight:权重(值越大分配越多)backup:主节点挂了才启用ip_hash:同一 IP 总是访问同一台后端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;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
upstream backend {
server 10.0.0.1;
server 10.0.0.2;
}
server 10.0.0.1 weight=5;
server 10.0.0.2 weight=1;
upstream backend {
least_conn;
server 10.0.0.1;
server 10.0.0.2;
}
upstream backend {
ip_hash;
server 10.0.0.1;
server 10.0.0.2;
}
Nginx 开源版支持简单检测:
server 10.0.0.1 max_fails=3 fail_timeout=30s;
max_fails:失败次数fail_timeout:判定不可用时间⚠️ 高级健康检查需要 Nginx Plus
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/ssl/certs/example.com.crt;
ssl_certificate_key /etc/ssl/private/example.com.key;
location / {
proxy_pass http://backend;
}
}
sudo nginx -t
sudo systemctl reload nginx
curl http://example.com
多次访问,观察是否分发到不同后端。
如果你有 具体场景(如:
我可以给你更针对性的配置示例。