负载均衡

负载均衡
介绍:
负载均衡时将访问流量根据转发策略分发到后端多台Server的流量控制分发服务,负载均衡能够以通过流量分发的方式扩展应用系统对外的服务能力,通过消除单点故障提升应用的高可用性
负载均衡的功能点:
负载均衡通过设置虚拟服务器地址IP,将位于同一地址的多台(云)服务器资源虚拟成一个高性能、高可用的应用服务池,根据应用指定的方式,将来自客户端的网络请求分发到应用服务池当中
负载均衡服务会检查服务器池中的资源的健康状态,自动隔离异常的服务器,从而解决单点问题,同时提高应用的整体服务能力,在标准的负载均衡之外,负载均衡服务还具备TCP和HTTP抗DDOS工具的特性,增强应用服务器的防护能力
负载均衡服务器通常需要与应用服务结合使用
Nginx负载均衡
ngx_http_upstream_module模块
upstream:定义后端服务组(应用服务池),引入一个新的上下文
server:在upstream上下文中,定义server成员以及相关参数
last_conn:最少链接调度算法,当server拥有不同的权重时其为wlc
IP_hash:源地址hash调度算法
hash:基于指定的key的hash表来实现对请求的调度,此处的key可以直接文本、变量或者二者组合
keepalive connections:为每个worker进程保留的空闲的长连接数量
server相关参数:
weight=number 权重,默认为1
max——fails=number 失败尝试最大次数,超过指定的次数时,server将会被标记为不可用
fail_timeout=time 设置服务器标记为不可用状态的超时时长
backup 将服务器标记为“备用”,即所有服务器均不可用时,该服务器才启用
http/https负载均衡服务——————>七层负载均衡
tcp/udp负载均衡服务———————>四层负载均衡服务
……
从效率上说:四层效率更高
从应用服务商来说:tcp/udp无法转发应用层的相关字段(cookie seesion……)
cookie:是我们用户浏览器的一个cookie值,比如说访问用户和密码
session:会话保持
7层负载均衡实验:
node1:nginx
node2:web1
node3:web2
准备web服务:
node2 && node3
setenforce 0
systemctl stop firewalld
yum install httpd -y
echo “this is $HOSTNAME”> /var/www/html/index.html
systemctl start httpd
测试
curl 192.168.10.20
curl 192.168.10.30
配置nginx负载均衡:
cat > /etc/nginx/conf.d/lb1conf << EOF
upstream webserver {
server 192.168.10.20;
server 192.168.10.30;
}
server {
listen 8011;
server_name 192.168.10.10;
location / {
proxy_pass http://webserver;
}
}
EOF
systemctl start nginx
4层负载均衡实验:
ngx_stream_core_module模块
模拟反代基于tcp或udp的服务连接,工作与传输层的反代或调度器
stream: 定义stream相关的服务
listen: 定义监听端口
nginx.conf 主配置文件
stream {
upstream sshserver{
server 192.168.10.20:22;
server 192.168.10.30:22;
}
server {
listen 192.168.10.10:2222;
proxy_pass sshserver;
}
}
测试:ssh 192.168.10.10:2222
负载均衡算法:
轮询(默认)
weight。加权轮询
ip_hash:每个请求按照访问IP的哈希值结果分配,让同一个IP的访客固定访问一台后端服务器,解决动态网页存在seesion共享问题
fair:只能负载均衡算法,可以根据页面大小和加载时长智能地进行负载均衡调度,根据后端服务器的响应时间进行分配
url_hash:按访问的URL的哈希表结果来分配,使每一个URL定向到一台后端服务器,能够进一步提高后端缓存服务器的效率
last_conn:最小连接数
w_last_conn
检查机制
被动健康检查:
max_fails
fail_timeout
主动健康检查:
health check
port 8080
interval 检查间隔
fail 标记为成功的次数
passes 标记为成功的次数
自定义健康检查
————> nginx
health check match=health_name
match health_name{
status 200-399
header Content-Type = text/html;
body ~ “Welcome to nginx!”;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值