高可用性实现方案

高可用性实现方案,第1张

NginX+keepalived实现高可用

nginx+keepalive实现高可用性

1,规划编制

*** 作系统:Centos6.7_x86_64

主机名

服务器地址

角色状态

服务

Vip地址

Jason1

10.18.199.176

掌握

服务器

10.18.199.106

杰森2

10.18.199.180

支持

服务器

2,安装keepalived和nginx

在两个节点上安装keepalived和nginx软件。

Nginx安装

塔尔zxvfnginx-1.6.3.tar.gz

cdnginx-1.6.3

。/configure-sbin-path=/usr/local/nginx/nginx-conf-path=/usr/local/nginx/nginx.conf

-PID-path=/usr/loacal/nginx/nginx.PID

-with-http_ssl_module

-with-http_realip_module

-with-http_sub_module

-with-http_gunzip_module

-with-http_gzip_static_module

-with-http_stub_status_module

-with-openssl=../openssl-1.0.2d

-with-pcre=../pcre-8.36

-with-zlib=../zlib-1.2.8

制造

进行安装

nginx配置:

访问节点jasan1的页面时显示


访问节点jasan2的页面时显示


保持活动安装

keepalived-1.2.19.tar.gz

cd保持激活-1.2.19

。/configure-prefix=/usr/local/keeplived

制造

安装

cd/usr/local/keeplived/etc/

CP-RPsysconfig/keepalived/etc/sysconfig/

cp-rp保持激活/etc/

CP-RPRC.d/init.d/keepalived/etc/init.d

3,配置keepalived

主机:

global_defs{

通知_邮件{

client@examge.com

}

通知_电子邮件_来自admin@examge.com

smtp_服务器127.0.0.1

smtp_连接_超时30

路由器idlvs_ha

}

vrrp_scriptchk_http_port{

脚本"</dev/tcp/127.0.0.1/80"

间隔1

}

vrrp_instanceVI_1{

状态主机

nopreempt

接口eth0

虚拟路由器标识50

优先级100

广告_int1

身份验证{

验证类型通过

认证通过1111

}

虚拟IP地址{

10.18.199.106

}

track_script{

chk_http_port

}

}

备份:

global_defs{

通知_邮件{

client@examge.com

}

notification_email_fromadmin@examge.com

smtp_服务器127.0.0.1

smtp_连接_超时30

路由器idlvs_ha

}

vrrp_scriptchk_http_port{

脚本"</dev/tcp/127.0.0.1/80"

间隔1

}

vrrp_instanceVI_1{

状态备份

接口eth0

虚拟路由器标识50

优先级80

广告_int1

身份验证{

验证类型通过

认证通过1111

}

虚拟IP地址{

10.18.199.106

}

track_script{

chk_http_port

}

}

4,测试

(1)开始保持激活

查日志jason1处于主状态,jason2处于备份状态,漂移地址位于jason1上。

jason1:

查看vip

贾森2:

通过vip地址访问站点显示

(2),关闭jason1节点nginx

当主机nginx关闭时,keepalived检测到httpd的故障,从主机状态变为故障状态,导致切换。

jason1:

Jason2:

将状态从备份更改为主,并添加漂移地址。

查看vip

刷新106的页面显示如下:

(3),恢复jason1节点nginx

重启nginx,jason1主机仍然不处于备份状态,jason2主机仍然是主用,没有角色切换。这是因为nopreempt是在jason1主机配置文件中设置的,在恢复资源时不会发生切回。

jason1:

Keepalived检测到htppd正常,其状态从故障变为备份。

贾森2:

日志没有变化,vip还是在jason2上,jason2节点还是master。

第106页被刷新而没有切换。

(4),关闭jason2节点nginx

杰森1:杰森1节点从备份状态变为主状态。

jason2:keepalived检测到httpd失效,从主状态变为故障状态,导致切换。

vip地址页面显示如下:

(5),恢复jason2节点nginx

jason1:日志没有变化,vip仍然在jason1上,jason1节点仍然是master。

jason2:keepalived检测htppd正常,状态由故障变为备份。

备注:

(1)当服务器关闭、重新启动以及keepalived软件关闭时,也会发生切换。这里不做测试,主要测试资源故障进行切换状态分析。

(2)检测资源状态的方法有很多种,可以根据自己的实际情况编写脚本。以下是一些常见的检测方法。

通过killall命令检测服务的运行状态。

vrrp_scriptchk_http{

脚本“killall-0nginx”

间隔2

}

通过检测端口运行状态。

vrrp_scriptchk_http_port{

脚本"</dev/tcp/127.0.0.1/80"

间隔1

}

(3)本实验vrrp_script中没有使用权重参数。设置weight参数后,可以在主资源失效时切换到备用,但在主机资源恢复时不会切换,在备用资源失效时不会切换。不知道是什么原因,取消这个参数,测试开关就没事了。


[/s2/]

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/779259.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-04
下一篇 2022-05-04

发表评论

登录后才能评论

评论列表(0条)

保存