1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > keepalived实现nginx的高可用(双主模型)

keepalived实现nginx的高可用(双主模型)

时间:2019-07-27 12:46:51

相关推荐

keepalived实现nginx的高可用(双主模型)

实验环境:

RS1:rip(172.16.125.7),安装httpd软件包;

RS2:rip(172.16.125.8),安装httpd软件包;

director1(7-):vip(172.16.125.100),dip(172.16.125.5),安装nginx、keepalived软件包。

director2(7-):vip(172.16.125.110),dip(172.16.125.6),安装nginx、keepalived软件包。

首先关闭所有节点上iptables和selinux,同时进行时间同步。

使用双主模型实现nginx的高可用:

(1)在两台keepalived高可用主机上安装keepalived和nginx软件包,并提供配置文件。

a.首先使用时间同步,保证节点上的时间是同步的。

b.首先使用nginx反向代理实现后台RS上的web服务的负载均衡,在nginx的主配置文件(/etc/nginx/nginx.conf)中,进行修改。

在http段中添加upstream,将后端两台RS加入到该upstream中。

upstreammyblancer{server172.16.125.7:80;server172.16.125.8:80;}

在server段中location /{}中加入代理,实现负载均衡调度。

location/{proxy_passhttp://myblancer;}

c.进行检测,是否实现了后端RS的轮询调度。

(2)上述说明已经通过nginx的反向代理实现了http服务的负载均衡。在此处就可以开始配置keepalived的主配置文件,实现对nginx的高可用。详细配置文件如下:

keepalived的配置文件1:

global_defs{notification_email{root@localhostfailover@firewall.locsysadmin@firewall.loc}notification_email_fromAlexandre.Cassen@firewall.locsmtp_server127.0.0.1smtp_connect_timeout30router_idLVS_DEVEL}vrrp_scriptchk_nginx{script"killall-0nginx&>/dev/null"interval1weight-20}vrrp_instanceVI_1{stateMASTERinterfaceeno16777736virtual_router_id100priority100advert_int1authentication{auth_typePASSauth_pass100}virtual_ipaddress{172.16.125.100/16deveno16777736labeleno16777736:0}track_script{chk_nginx}}vrrp_instanceVI_2{stateBACKUPinterfaceeno16777736virtual_router_id110priority90advert_int1authentication{auth_typePASSauth_pass110}virtual_ipaddress{172.16.125.110/16deveno16777736labeleno16777736:1}track_script{chk_nginx}}

keepalived配置文件2:

global_defs{notification_email{root@localhostfailover@firewall.locsysadmin@firewall.loc}notification_email_fromAlexandre.Cassen@firewall.locsmtp_server127.0.0.1smtp_connect_timeout30router_idLVS_DEVEL}vrrp_scriptchk_nginx{script"killall-0nginx&>/dev/null"interval1weight-20}vrrp_instanceVI_1{stateBACKUPinterfaceeno16777736virtual_router_id100priority90advert_int1authentication{auth_typePASSauth_pass100}virtual_ipaddress{172.16.125.100/16deveno16777736labeleno16777736:0}track_script{chk_nginx}}vrrp_instanceVI_2{stateMASTERinterfaceeno16777736virtual_router_id110priority100advert_int1authentication{auth_typePASSauth_pass110}virtual_ipaddress{172.16.125.110/16deveno16777736labeleno16777736:1}track_script{chk_nginx}}

使用如下这个脚本检测nginx服务的状态,如果nginx服务发生了问题,那么在该服务器上的vip会自动流动到另一台高可用服务器上。使用下边这个脚本要保证高可用服务器上有killall命令,该命令是由psmisc软件包提供

vrrp_scriptchk_nginx{script"killall-0nginx&>/dev/null"interval1weight-20}

通过这一步的keepalived的配置,keepalived服务已经配置完成,那么在这两台director上启动keepalived和nginx服务。

a.查看两台director上vip是否已经添加成功。

b.分别访问vip(172.16.125.100)和vip(172.16.125.110)。

c.在director1上关闭nginx服务,检测到vip已经消失,转移到director2上。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。