nginx+keepalived高可用集群
介绍:
Keepalived软件主要是实现网站、数据库、业务系统高可用性、自动切换的,主要是基于类似交换机制OSI七层模型:3(网络层)、4(传输层)、7层(应用层)来实现健康检查的,当监测到其中一台服务器宕机或者异常,能够切换到另外一台。主要功能是:健康检测和vrrp漂移。
Vrrp(虚拟路由冗余协议):
使用一个虚拟IP地址,前端使用两台机器基于该协议来实现两台服务器之间的高可用,一个做主,一个做从,但只能有一台机器工作。当主服务器出现错误时,该虚拟IP就会转接到从服务器上从而让虚拟IP进行一个持续的连接访问。
规划:
(主)master | Ip:192.168.200.252 |
(从)backup | Ip:192.168.200.251 |
虚拟ip | 192.168.200.100 |
主服务器master搭建:
安装keepalived
对master进行编译安装:
下载nginx
解压
配置编译选项
(注:遇到如下问题解决方案:
1:
2:./configure: error: the HTTP gzip module requires the zlib library.
分别使用yum源下载
1:yum -y install pcre-devel
2: yum install -y zlib-devel
(解决)
安装:使用make和make install
make install #执行安装命令,第一次安装可以执行,如果是升级,谨慎执行。
make执行完成后生成的中间件文件,都会放在objs/src目录下面
打开服务
在master上进入cd /usr/local/nginx/sbin上输入./nginx
从服务器backup搭建:
由于nginx位于第三方的yum源里面,不在centos官方yum源里面,所以直接下载会出错(两台机子都能通过这种方式安装nginx)
通过yum -y install epel-release来安装yum源后,yum -y update更新yum源后可以直接下载
启动服务:systemctl start nginx
最后连接外网:
(注:最开始连接外网上并不会出现IP,master需到cd /usr/local/nginx/html中去修改index.html,
Backup需要到cd /usr/share/nginx/html中修改index.html
修改maser和backup中的配置文件和脚本,
1:Router_id 为本机IP,
2:vrrp_scrip:script "/etc/keepalived/nginx_check.sh"是检测nginx的路径脚本,interval 2:每两秒运行一次上面的脚本。weight -20:失败一次,将自己优先级-20,如果master的priority=100,backup的priority=70,那么master要失败两次后变为60,低于backup的70,则master节点变为backup,而backup变为master。
3:interface ens32,网卡名称与本机端口相同(查看命令: IP addr)
4:virtual_router_id 51:虚拟路由id,master和backup必须一样
5:priority 100:优先级,数字越大,优先级越高。Master的优先级必须比backup高
6:virtual_ipaddress :虚拟IP,master和backup必须一样
7:track_script :执行脚本,chk_nginx:对应上方配置的脚本
编写nginx状态检测脚本
启动keepalived命令:
启动:systemctl start keepalived.service
重启:systemctl restart keepalived.service
停止:systemctl stop keepalived.service
查看运行状态:systemctl status keepalived
查看运行进程:ps -ef|grep keepalived
检测:
关闭master,开启backup
2:开启master,关闭backup
成功!!