upstream
server
max_fails=n 总共允许多少次失败 fail_timeout=n 多少时间算一次失败 down 开启 ip_hash 的时候, 该服务器不再使用 backup 备份服务器, 仅当其他服务器全部冗机或者无效的时候才有用
- 轮询方法
每次将请求顺序分配到不同的服务器
upstream test_server { server 192.168.1.111:8080; server 192.168.1.112:8080; server 192.168.1.113:8080; } server { listen 80; location / { proxy_pass http://test_server; } }
- 权重算法
upstream test_server { server 192.168.1.111:9000 weight=2 max_fails=3 fail_timeout=10s; server 192.168.1.112:9000 weight=2 max_fails=3 fail_timeout=10s; server 192.168.1.113:9000 weight=6 max_fails=3 fail_timeout=10s; } server { listen 80; location / { fastcgi_pass http://test_server; } }
- IP 哈希算法
upstream test_server { ip_hash; <== server 192.168.1.111:8080; server 192.168.1.112:8080; server 192.168.1.113:8080; } server { listen 80; location / { proxy_pass http://test_server; } }
ip_hash 避免了 session 丢失, 但 ip_hash 无法保证负载均衡, 可能有些后端服务器接收的请求多, 有些后端服务器接收的请求少