一、分为四层负载均衡和七层负载均衡
四层:主要tcp/ip 底层 处理速度快
七层:http层,处理应用层 如http信息
按照地域划分可以分为GSLB和SLB
二、Nginx负载均衡
upstream server
image.png
配置语法:
Syntax: upstream name {...}
Defalut:-
Context:http
案例:
A作为反向代理服务器
upstream test {
server 192.168.12.16:8001;
server 192.168.12.16:8002;
server 192.168.12.16:8003;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://test;
}
}
B作为realserver 监听3个端口
分别为8001 8002 8003端口/opt/app/{code1,code2,code3}下面
以8001为例,有3个首页分别在
server {
listen 8001;
server_name localhost;
sendfile on;
#charset koi8-r;
access_log /var/log/nginx/log/static_access.log main;
location / {
root /opt/app/code1;
index index.html index.htm;
}
error_page 500 502 503 504 404 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
三、后端服务器在负载均衡调度中的状态
down 当前的server暂时不参加负载均衡
backup 预留的备份服务器,只有当其他都不可用的时候才会开启,当有一个服务正常之后又会是backup的状态
max_fails 允许请求失败的次数
fail_timeout 经过max_fails失败后,服务暂停的时间
max_conns 限制最大的接收的连接数(在后端服务器资源不一致的情况比较合适)
四、调度算法
轮询 按时间顺序逐一分配到不同的后端服务器
加权轮询 weight越大,分配到的访问几率越高
ip_hash 每个请求访问ip的hash结果分配,这样来自同一个ip的固定访问一个后端服务器
url_hash 按照访问的URL的hash结果来分配请求,是每个URL定向到同一个后端服务器(为了改善ip_hash,因为如果通过代理的话ip_hash获取就有问题了。)
least_conn 最少连接数,哪个机器连接数少就分发
hash关键数值 hash自定义的key
网友评论