在 Debian 上用 Nginx 做负载均衡,通常是使用 Nginx 的 upstream 模块,把请求转发到多台后端服务器。下面从安装 → 配置 → 常用策略 → 验证一步步说明。
sudo apt update
sudo apt install nginx -y
启动并设置开机自启:
sudo systemctl enable nginx
sudo systemctl start nginx
sudo nano /etc/nginx/conf.d/load_balance.conf
写入以下内容:
upstream backend {
server 192.168.1.20:8080;
server 192.168.1.21: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
upstream backend {
server 192.168.1.20:8080;
server 192.168.1.21:8080;
}
upstream backend {
server 192.168.1.20:8080 weight=3;
server 192.168.1.21:8080 weight=1;
}
upstream backend {
ip_hash;
server 192.168.1.20:8080;
server 192.168.1.21:8080;
}
upstream backend {
least_conn;
server 192.168.1.20:8080;
server 192.168.1.21:8080;
}
upstream backend {
server 192.168.1.20:8080 max_fails=3 fail_timeout=10s;
server 192.168.1.21:8080 max_fails=3 fail_timeout=10s;
}
max_fails:失败次数fail_timeout:暂停时间⚠️ Nginx 开源版 无主动健康检查(需 Nginx Plus 或
nginx-upstream-check-module)
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
curl http://example.com
多次访问,观察是否轮询到不同后端(可后端返回不同内容测试)。
tail -f /var/log/nginx/error.log
如果你愿意,我可以:
直接告诉我你的使用场景即可。