nginx+keepalive实现高可用性
1,规划编制
*** 作系统:Centos6.7_x86_64
服务器地址
角色状态
服务
Vip地址
10.18.199.176
掌握
服务器
10.18.199.106
杰森210.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/]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)