负载均衡

负载均衡

负载均衡策略(调度方式)默认是随机的,可以通过 lb_policy 来指定不同的负载均衡策略

填写自己的域名 {
	reverse_proxy localhost:9000(一个端口) localhost:9001(另一个端口) {
		lb_policy first
	}
}

负载均衡策略

Caddy支持的9个负载均衡策略

first:选取第一个可用的上游
random:随机选取一个可用的上游
least_conn:选取当前请求数最少的上游,这个比较适合长连接的场景
ip_hash:根据IP的Hash值选取一个固定的上游
random_choose :随机选取2个或者更多个上游,然后再从中选择负载最小的,n通常为2
header:根据请求头的Hash选取一个固定的上游,和 ip_hash 很像。用法是 header <request_header_name> ,要指定一个请求头。
uri_hash:根据请求的URI进行Hash,然后选取一个上游。
round_robin:策略是循环迭代,每个上游都可以被用到,轮着来。
cookie [[]] :通过cookie值的hash来选取一个上游。获取cookie值的name 默认是 lb , secret 是用于Hash的密钥,使用的是Hamc256算法。

示例:按照ip hash 负载均衡,重试等待时间为5秒

reverse_proxy /api/*  {
	to node1:80 node2:80 node3:80
	lb_policy ip_hash
	lb_try_duration 5s
}

lb_try_duration 是重试等待的总时间

lb_try_interval 是在这段时间内,每隔多久重试一次