轮询(round-robin)是Nginx负载均衡中最简单、最常用的调度算法。下面是详细的配置方法:
http {
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
}
server {
listen 80;
location / {
proxy_pass http://backend;
}
}
http {
upstream myapp1 {
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
server {
listen 80;
location / {
proxy_pass http://myapp1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
如果需要为不同服务器分配不同的权重:
upstream backend {
server backend1.example.com weight=3;
server backend2.example.com;
server backend3.example.com weight=2;
}
在这个配置中,backend1将获得3/6的请求,backend3获得2/6,backend2获得1/6。
可以为服务器设置不同的状态参数:
upstream backend {
server backend1.example.com weight=5;
server backend2.example.com max_fails=3 fail_timeout=30s;
server backend3.example.com backup;
}
max_fails
:允许失败的次数fail_timeout
:服务器被标记为不可用的时间backup
:备用服务器,当主服务器不可用时启用ip_hash
或least_conn
等其他算法nginx -t
测试配置是否正确nginx -s reload
重新加载配置建议定期检查后端服务器的健康状态,可以通过Nginx Plus或第三方工具实现更高级的健康检查。
希望这个配置指南对您有所帮助!如需其他负载均衡算法(如ip_hash、least_conn等)的配置,也可以进一步咨询。