安装配置keepalived 2.0,实现nginx+keepalived高可用
https://www.51anidea.com/forum.php?mod=viewthread&tid=1339
(出处: Linux教程网)php
1、环境
服务器系统版本:CentOS 7
两台服务器,一台作主节点,一台作备用节点:
192.168.1.200(主节点)
192.168.1.201(备用节点)html
2、安装keepalived 2.0
两台服务器都安装上 keepalived 2.0。nginx
一、安装依赖包(libnl库-简化netlink 协议对象的实现、gcc-GNU编译器套件、openssl-devel-包含开发支持各类密码算法和协议的应用程序所需的文件的库包)
#yum install -y libnl-devel libnl3-devel libnfnetlink-devel gcc openssl-develweb
二、访问keepalived官网下载安装包:
#wget https://www.keepalived.org/software/keepalived-2.0.18.tar.gz算法
三、解压keepalived安装包:
#tar -zxvf keepalived-2.0.18.tar.gz 浏览器
四、安装keepalived:
#mkdir /usr/local/keepalived(建立安装目录)
#cd keepalived-2.0.18切换到(安装目录下)
#./configure --prefix=/usr/local/keepalived(指定位置下安装源代码)
#make(编译)
#make install(源代码安装)
检查keepalived版本号
#/usr/local/keepalived/sbin/keepalived -v
复制keepalived配置文件到 /etc/keepalived/ 目录下:
#mkdir /etc/keepalived(建立目录)
#cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
(启动 keepalived 时,默认会去 /etc/keepalived 目录下找 keepalived.conf 文件)
keepalived日志文件路径:/var/log/messages服务器
3、配置keepalived
192.168.1.200(主节点)上操做:
一、配置keepalived文件
#vi /etc/keepalived/keepalived.conf
将默认的配置文件内容清空(%d),输入如下内容:
vrrp_instance VI_1 { ### 实例名称,VI_1即实例名。
state MASTER ### 标记该节点是主节点(master)
interface ens33 ### 配置vip绑定的网卡,ens33是网卡名,按照实际状况修改为你本身(网卡名查询:ifconfig)。vip指的是虚拟ip地址。
virtual_router_id 51 ### 取1-255之间的值,主备节点的值须要设置成同样的,成为一个组。
priority 100 ### 权重,数值大的节点是master。
advert_int 1 ### 主备节点之间通信的间隔秒数,用于判断主节点是否存活。
authentication {
auth_type PASS ### 认证方式
auth_pass 1111 ### 认证密码
}
virtual_ipaddress {
192.168.1.100 ### vip地址
}
}
保存文件:wq,退出。ide
二、启动keepalived:
#systemctl start keepalived测试
三、查看主节点的地址信息:
#ip addr
输出以下信息:
能够看到,在 ens33 网卡下面,已经出现了vip:192.168.1.100idea
四、在192.168.1.102(备用节点)上操做:
编辑keepalived.conf配置文件:
#vi /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP ### 标记该节点是备用节点(backup)
interface ens33 ### 配置vip绑定的网卡,eno16777736是网卡名,按照实际状况修改为你本身###的网卡名。### vip指的是虚拟ip地址。
virtual_router_id 51 ### 取1-255之间的值,主备节点的值须要设置成同样的,成为一个组。
priority 66 ### 权重,数值小的节点是backup。
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100 ### 设置成跟主节点同样的vip地址。
}
}
保存文件,退出。
五、启动 keepalived:
#systemctl start keepalived
查看备用节点的地址信息:# ip addr
输出以下信息:
从上图能够看出,备用节点没有vip地址。vip地址在主节点上。
4、实验验证nginx+keepalived高可用
一、在主备节点上都安装好nginx。nginx安装方法:
https://www.51anidea.com/forum.php?mod=viewthread&tid=266&extra=page%3D1
二、安装好以后,编辑nginx的主页文件。
192.168.1.200(主节点)上操做:
#vi /usr/share/nginx/html/index.html
清空该文件的内容,输入如下内容:
200
保存文件,退出。
三、192.168.1.102(备用节点)上操做:
#vi /usr/share/nginx/html/index.html
清空该文件的内容,输入如下内容:
201
保存文件,退出。
四、测试
(1)测试虚拟(网址)ip跳转的服务器网址(主节点)
打开浏览器,访问 192.168.1.200:81(ip+端口号)(主节点)的web页面:
输出结果为200-主节点的内容
访问192.168.1.201:81(备用节点)的web页面
输出结果为201-备用节点内容
访问192.168.1.100:81(vip虚拟ip)的web网页
输出结果为200——主节点
由于vip地址在备用节点 192.168.1.102 上,因此访问vip地址会跳转到备用节点上。
(2)故障测试----当主节点出现故障或者宕机时,虚拟ip是否能跳转至备用节点。
a、经过中止主节点的 keepalived服务来模拟故障。
192.168.1.106(主节点)上操做:
中止keepalived服务:
#systemctl stop keepalived
b、访问虚拟ip(vip)192.168.1.100:80
输出内容为201------说明当主节点宕机时,虚拟ip将会跳转至备用节点。
(3)主节点上线时,vip是否能跳转至主节点
a、主机点开启keepalived服务
#systemctl start keepalived
b、访问vip
浏览器打开192.168.1.100
输出内容200-----主节点。说明主节点上线时,vip将会跳转至主节点。
5、在实际生产环境中把vip地址(或者vip地址对应的域名)提供给用户访问,以达到高可用的目的。