Nginx负载均衡
Nginx的负载均衡是一个典型的七层负载均衡的lsb;
通过proxy_pass和upstream实现
upstream的配置语法
Syntax:upstream name{...}
Default:---
Context:http
默认是轮训的方式,即一次访问每个server;
后端服务器再负载均衡调度中的状态:
down | 当前的server展示不参加负载均衡 |
backup | 预留的备份服务器 |
max_fails | 允许请求失败的次数 |
faul_timeout | 进过max_fails失败后,服务暂停时间 |
max_conns | 限制最大的接收的连接数 |
即在upstream的服务地址后面追加参数,比如:
upstream myupstream { server 192.168.1.3:8080 down;
server 192.168.1.3:8081 max_fails=1 fail_timeout=10s;
}
调度算法:
轮询 | 按照时间顺序逐一分配到不同的后端服务器 |
加权轮询 | weight值越大,分配到的访问几率越高 |
ip_hash | 每个请求按照ip的hash结果分配,这样来自同一个ip的固定访问一个后端服务器 |
least_conn | 最小连接数,哪个机器连接数越少就分发 |
url_hash | 按照url的hash结果来分配 |
hash关键数值 | hash的自定义key值 |
配置如下:
upstream myupstream {
ip_hash;// hash $request_uri; server 192.168.1.3:8080 down; server 192.168.1.3:8081 max_fails=1 fail_timeout=10s; }
我们曾如此渴望生命的波澜,到后来才发现,人生最曼妙的风景是内心的淡定与从容