nginx结合keepalived实现高可用的完整步骤
前言
为了满足系统的高可用,一般都需要搭建集群。当主机挂掉的时候,我们的系统还可以继续提供服务。当我们使用nginx作为反向代理和动静分离服务器的时候,也是如此。实现系统的高可用性,是我们程序员关注的重点。本文介绍了nginx结合keepalived实现主从模式搭建高可用集群。
前提知识
本文不作过多的nginx相关配置介绍,默认读者已经了解nginx的相关知识。
keepalived的介绍
Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。
系统架构图
实现步骤
1.环境配置
1.1安装nginx
安装相关依赖
yuminstallpcre-develzlibzlib-developensslopenssl-devel
上传解压压缩包
tarzxvfnginx-1.12.2.tar.gz
创建目录,检测配置
mkdir-p/usr/local/nginx ./configure--prefix=/usr/local/nginx
预编译和安装
make&&makeinstall
启动、停止相关命令
cd/usr/local/nginx/sbin/ ./nginx ./nginx-sstop ./nginx-sstart
1.2安装keepalived
yuminstall-ykeepalived
2.主机配置
修改keepalived配置文件
vim/etc/keepalived/keepalived.conf
修改的内容如下
#新增的配置 vrrp_scriptchk_http_port{ script"/shell/nginx_check.sh"#脚本地址 interval2#检测脚本执行的间隔 weight2#比重 } vrrp_instanceVI_1{ stateMASTER#主服务器为MASTER,从服务器为BACKUP interfaceeth0#网卡 virtual_router_id51#主、备机的virtual_router_id必须相同 priority100#主、备机不同的优先级,主机优先级较大,备机值较小,默认是100 advert_int1 authentication{ auth_typePASS auth_pass1111 } #虚拟IP地址 virtual_ipaddress{ 192.168.126.88 } }
创建编写脚本文件
mkdir/shell/nginx_check.sh vim/shell/nginx_check.sh
脚本文件内容如下
#!/bin/bash A=`ps-Cnginx–no-header|wc-l` if[$A-eq0];then /usr/local/nginx/sbin/nginx sleep2 if[`ps-Cnginx--no-header|wc-l`-eq0];then killallkeepalived fi fi
3.从机配置
修改keepalived配置文件
vrrp_instanceVI_1{ stateBACKUP#主服务器为MASTER,从服务器为BACKUP interfaceeth0#网卡 virtual_router_id51#主、备机的virtual_router_id必须相同 priority50#主、备机不同的优先级,主机优先级较大,备机值较小 advert_int1 authentication{ auth_typePASS auth_pass1111 } #虚拟IP地址 virtual_ipaddress{ 192.168.126.88 } }
4.启动服务
启动
servicekeepalivedstart
查看虚拟IP地址
ipaddr 1:lo:mtu65536qdiscnoqueuestateUNKNOWN link/loopback00:00:00:00:00:00brd00:00:00:00:00:00 inet127.0.0.1/8scopehostlo inet6::1/128scopehost valid_lftforeverpreferred_lftforever 2:eth0: mtu1500qdiscpfifo_faststateUPqlen1000 link/ether00:0c:29:4f:31:cebrdff:ff:ff:ff:ff:ff inet192.168.126.100/24brd192.168.126.255scopeglobaleth0 inet192.168.126.88/32scopeglobaleth0 inet6fe80::20c:29ff:fe4f:31ce/64scopelink valid_lftforeverpreferred_lftforever
5.关闭防火墙测试
关闭防火墙
serviceiptablesstop #查看防火墙是否开机自启动 chkconfig--list|grepiptables chkconfigiptablesoff
登陆虚拟IP地址查看
http://192.168.126.88/
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。