配置nginx的负载均衡
nginx负载均衡是通过upstream模块来实现的,内置实现了三种负载策略。
1、轮询(默认)
nginx根据请求次数,将每个请求均匀分配到每台服务器。
2、最少连接
将请求分配给连接数最少的服务器。nginx会统计哪些服务器的连接数最少。
3、IP hash
绑定处理请求的服务器。第一次请求时,根据该客户端的IP算出一个hash值,将请求分配到集群中的某一台服务器上。后面该客户端的所有请求,都将通过这台服务器处理。
- 配置轮询
思路:通过upstream定义一组主机,然后通过proxy_pass转发给这组主机。
1 | http { |
- 我们可以通过修改权重weight,实现非等价的负载均衡。
1 | upstream tomcats{ |
- max_fails
默认为1,某台server允许请求失败的次数,超过这个次数,在fail_timeout时间内,新的请求不会发送给它,表示无法到达;如果为0,则会标记它会永久无效的状态。
- fail_timeout
默认为10秒,某台服务器达到max_fail次失败后,在这个时间内,不会将请求分配给它。
1 | upstream tomcats{ |
- max_conns
限制分配给服务器的最大连接数量(1.5.9以后才有),为0表示不限制。
1 | upstream tomcats{ |
- resolve
指定DNS服务器,需要在HTTP模块下配置resolver指令。
1 | http { |
表示example.com域名,由10.0.0.1服务器负责解析。