- GSLB:全局负载均衡
- SLB:在一个地域,nginx就是SLB
nginx负载均衡原理:
客户 ------------> nginx -----------> upstream server
nginx转发到一组虚拟的服务池,叫upstream server(里面可以定义服务单元,里面实现了不断的轮询)。
配置语法
-
upstream配置
Syntax: upstream name {...}; Default: Context: http
-
后端服务器在负载均衡调度中的状态
down 当前的server暂时不参与负载均衡 backup 预留的备份服务器,当本组服务都不可用时启用 max_fails 允许请求失败的次数 fail_timeout 经过max_fails失败后,服务暂停的时间 max_conns 限制最大的接受的连接数 weight 权重,值越大,选中机会越高 -
调度算法
轮询 加权轮询 weight越大,分配到的几率越高 ip_hash 每个请求按访问IP的hash结果分配,这样每一个IP固定访问一个后端服务器 least_conn 最少链接数,哪个机器连接数少就分发给谁 url_hash 按照url的hash结果来分配请求,是每个url定向到同一个后端服务器 hash关键字 hash自定义的key -
url_hash
Syntax: hash key [consistent]; Default: Context: upstream #eg: hash $request_uri
示例
upstream mini {
server 192.168.111.111:8001 down;
server 192.168.111.111:8002 backup;
server 192.168.111.111:8003 max_fails=1 fail_timeout=10s;
}