你注册过的那些网站,国外包装设计网站大全,两学一做 网站源码,网站建设使用工具keepalive#xff1a;
调度器的高可用
vip地址在主备之间的切换#xff0c;主在工作时#xff0c;vip地址只在主上#xff0c;主停止工作#xff0c;vip漂移到备服务器。
在主备的优先级不变的情况下#xff0c;主恢复工作#xff0c;vip会飘回到主服务器。
1、配优…keepalive
调度器的高可用
vip地址在主备之间的切换主在工作时vip地址只在主上主停止工作vip漂移到备服务器。
在主备的优先级不变的情况下主恢复工作vip会飘回到主服务器。
1、配优先级
2、配置vip和真实服务器
3、主备的id要一致
4、主备的id要区分。
keepalive是专门为lvs打造的但是不是为lvs专门服务的。
keepalive也可以使用nginxhaproxy。
keepalivenginx实现高可用 vrrp script check_nginx {
script /opt/check_nginx.sh
#调用脚本内容检测nginx的状态
interval 5
#检测的间隔时间是5秒
}
操作
1、关闭两台nginx的防火墙
[roottest3 ~]# systemctl stop firewalld
[roottest3 ~]# setenforce 0
2、下载keepalive配置文件
[roottest3 ~]# yum -y install keepalived
3、在主写一个监控nginx的脚本
[roottest3 opt]# vim check_nginx.sh
#!/bin/bash
/usr/bin/curl -I http://localhost /dev/null
if [ $? -ne 0 ]
thensystemctl stop keepalived
fi
4、将脚本赋权
[roottest3 opt]# chmod 777 check_nginx.sh
5、在主中更改keepalive配置文件
[roottest3 opt]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {notification_email {acassenfirewall.locfailoverfirewall.locsysadminfirewall.loc}notification_email_from Alexandre.Cassenfirewall.locsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_01vrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0vrrp_iptables
}vrrp_script check_nginx {script /opt/check_nginx.shinterval 5
}
vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 120advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.60.100}track_script {check_nginx}
}
6、将主的keepalive配置文件复制到备中
[roottest4 ~]# scp root192.168.60.30:/etc/keepalived/keepalived.conf /etc/keepalived/
7、更改备的配置文件
[roottest4 ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {notification_email {acassenfirewall.locfailoverfirewall.locsysadminfirewall.loc}notification_email_from Alexandre.Cassenfirewall.locsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_02vrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0vrrp_iptables
}vrrp_script check_nginx {script /opt/check_nginx.shinterval 5
}
vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.60.100}track_script {check_nginx}
} 面试题
脑裂是什么
HA 高可用架构中的一个特殊现象只要使用vip地址代理的冗余模式的高可用。都有可能出现脑裂的问题。
主和备同时都有vip地址
主和备无法确定各自的身份同时出现了vip地址两边起来了但是两边都无法使用。
原因:
1、keepalive的配置文件问题
2、心跳线网线断了老化
3、网卡出了问题硬件IP地址配置冲突。
4、防火墙的策略iptables的策略屏蔽了组播地址的广播。屏蔽了vrrp协议的报文
5、两台服务器的时间不同步也可能导致。
6、其他的服务配置对心跳线的检测造成了干扰。 怎么解决
1、 将keepalive的配置文件中错误配置更改
2、 更换新的网线
3、 Ip地址冲突就更改其他的vip地址如果是硬件问题就更换新的网卡
4、 将防火墙策略中阻止通信的策略删除或在keepalive的配置文件中加一行vrrp_iptables
5、 将两台服务器的时间同步
6、 将其他服务配置更改 nginx lvs lvskeepalive keepalive单独配置
web集群
Haproxy负载均衡
nginx 四层转发七层代理
lvs 四层转发 内核态 用户态
Haproxy 四层转发 七层代理
Haproxy的作用和使用场景
1、场景 用于高并发的web场景可以支持一万个以上的并发请求高性能的tcp和http的负载均衡器。
工作原理
提高一个代理地址访问集群
2、作用
1进行四层和七层转发
2支持https
3haproxy本身不自带缓存功能。请求当中添加cookie使用缓存
4支持主备切换keepalive
3、特点
可靠性高稳定性好
可以同时维护40000~50000个并发单位时间内可以处理的最大请求数20000个3秒
支持负载均衡算法虽然不带缓存但是可以支持会话保持。
rr
wrr
lestconn make TARGETlinux2628 ARCHx86 64
target使用的版本要大于linux2.60以上的办呢
3.10
2628
2.62.8 linux内核版本
操作
1、安装依赖环境
[roottest8 opt]# yum install -y pcre-devel bzip2-devel gcc gcc-c make
2、将压缩包拖到opt目录下
[roottest8 ~]# cd /opt/
[roottest8 opt]# rz -E
rz waiting to receive.
3、解压haproxy压缩包并执行
[roottest8 opt]# tar -xf haproxy-1.5.19.tar.gz
[roottest8 opt]# cd haproxy-1.5.19/
[roottest8 haproxy-1.5.19]# uname -r
3.10.0-957.el7.x86_64
[roottest8 haproxy-1.5.19]# make TARGETlinux2628 ARCHx86_64
4、执行一下
[roottest8 haproxy-1.5.19]# make install
5、创建一个目录将主配置文件复制到创建的目录下
[roottest8 haproxy-1.5.19]# mkdir /etc/haproxy
[roottest8 haproxy-1.5.19]# cd examples/
[roottest8 examples]# cp haproxy.
haproxy.cfg haproxy.init haproxy.spec haproxy.vim
[roottest8 examples]# cp haproxy.cfg /etc/haproxy/
6、更改主配置文件
[roottest8 examples]# cp haproxy.cfg /etc/haproxy/
[roottest8 examples]# cd /etc/haproxy/
[roottest8 haproxy]# vim haproxy.cfg
# this config needs haproxy-1.1.28 or haproxy-1.2.1
globallog /dev/log local0 infolog /dev/log local1 notice#log loghost local0 infomaxconn 4096#最大连接数推荐使用10240#chroot /usr/share/haproxyuid 99gid 99daemonnbproc 4#4相当于haproxy的并发线程数设置的数量最好是cpu的2倍或者和cpu保持一致#debug#quiet
defaults
#这里是默认参数配置连接配置监听配置以及代理配置log globalmode httpoption httplogoption dontlognullretries 3#检查节点服务器3次连续3次失败就认为节点服务器不可用redispatch#服务器负载很高时自动结束当前队列中处理比较久的连接maxconn 2000#最大连接数这个数值可以和global中的一致也可以比他小但是不能超过他一般设置成一致。#contimeout 5000#clitimeout 50000#srvtimeout 50000timeout http-request 10s#http请求的默认超时时间timeout queue 1m#在队列当中请求的超时时间timeout connect 10s#连接超时时间timeout client 1m#客户端的超时时间timeout server 1m#服务端的超时时间timeout http-keep-alive 10s#默认长连接的超时时间timeout check 10s#检查后端服务器的超时时间.
#转发请求的设置既可以是四层也可以是七层
#7层的配置
listen xy102 0.0.0.0:80option httpchk GET /index.htmlbalance static-rrserver rs01 192.168.60.30:80 check inter 2000 fall 3 weight 2server rs02 192.168.60.40:80 check inter 2000 fall 3 weight 3
#server 指定真实服务器 rs01 自定后台服务器名称 check inter 2000 启动对后端服务器进行检查检查的间隔时间2000毫秒。 fall 3 连续三次见不到任务失败。
7、将haproxy.init配置文件复制并赋权和做软连接
[roottest8 haproxy-1.5.19]# cd /opt/haproxy-1.5.19/examples/
[roottest8 examples]# cp haproxy.init /etc/init.d/haproxy
[roottest8 examples]# chmod 777 /etc/init.d/haproxy
[roottest8 examples]# chkconfig --add /etc/init.d/haproxy
[roottest8 examples]# ln -s /usr/local/sbin/haproxy /usr/bin/
8、重启haproxy服务
[roottest8 init.d]# systemctl restart haproxy
9、四层代理
#四层转发
frontend test
bind *:80
mode tcp
default_backend test
backend test
mode tcp
balance roundrobin
server server1 192.168.60.30:80 check inter 2000 fall 3 weight 2
server server2 192.168.60.40:80 check inter 2000 fall 3 weight 2
10、结果
[roottest8 haproxy]# curl 192.168.60.80
this is test3
[roottest8 haproxy]# curl 192.168.60.80
this is test4
[roottest8 haproxy]# curl 192.168.60.80
this is test4
[roottest8 haproxy]# curl 192.168.60.80
this is test3
[roottest8 haproxy]# curl 192.168.60.80
this is test4 keepalivehaproxy
vip 192.168.60.100
rs1
rs2
nginxkeepalive