Nginx负载均衡max_fails和fail_timeout的设置作用,直接贴配置上,看干货
server {
listen 80;
server_name xxxx.ikong.com;
location / {
proxy_pass http://$pool;
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 loadbalance_1 {
server 192.168.20.216:8080 weight=8 max_fails=1 fail_timeout=30s;
server 192.168.20.217:8080 weight=1 max_fails=1 fail_timeout=30s;
server 192.168.20.218:8080 weight=1 max_fails=1 fail_timeout=30s;
}
upstream loadbalance_2 {
server 192.168.20.211:8081 weight=3;
server 192.168.20.212:8081 weight=3;
server 192.168.20.213:8089 weight=2;
server 192.168.20.214:8089 weight=2;
}
map $http_header_param_key $pool {
default "loadbalance_2";
header_param_key_3 "loadbalance_1";
header_param_key_1 "loadbalance_1";
header_param_key_2 "loadbalance_1";
}
这里会把 header中 param_key 这个参数拿出来跟$pool 中设置的header_param_key的key进行比较,命中的如:header_param_key_3 会转发到loadbalance_1,没有命中的会转发到默认loadbalance_2;
weight=8 max_fails=1 fail_timeout=30s;
weight 作用:流量切割
max_fails=1 fail_timeout=30s; 转发给后端服务时,若发现后端服务故障,则将请求转发给其他节点进行处理,并将服务器标记为故障、在30s时间内不再转发给故障服务器。30s后重试转发给故障服务器,若仍旧不成功则重复刚才的操作;
整体来看不影响试错的请求;
版权声明:本文为philip502原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。