安装配置keepalived 2.0,实现nginx+keepalived高可用 https://www.51anidea.com/forum.php?mod=viewthread&tid=1339 (出处: Linux教程网)

一、环境 服务器系统版本:CentOS 7 两台服务器,一台做主节点,一台做备用节点: 192.168.1.200(主节点) 192.168.1.201(备用节点)

二、安装keepalived 2.0 两台服务器都安装上 keepalived 2.0。

1、安装依赖包(libnl库-简化netlink 协议对象的实现、gcc-GNU编译器套件、openssl-devel-包含开发支持各种密码算法和协议的应用程序所需的文件的库包) #yum install -y libnl-devel libnl3-devel libnfnetlink-devel gcc openssl-devel

2、访问keepalived官网下载安装包: #wget https://www.keepalived.org/software/keepalived-2.0.18.tar.gz

3、解压keepalived安装包: #tar -zxvf keepalived-2.0.18.tar.gz

4、安装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

三、配置keepalived 192.168.1.200(主节点)上操作: 1、配置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,退出。

2、启动keepalived: #systemctl start keepalived

3、查看主节点的地址信息: #ip addr 输出如下信息: 可以看到,在 ens33 网卡下面,已经出现了vip:192.168.1.100

4、在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地址。 } }

保存文件,退出。

5、启动 keepalived: #systemctl start keepalived

查看备用节点的地址信息:# ip addr 输出如下信息: 从上图可以看出,备用节点没有vip地址。vip地址在主节点上。 四、实验验证nginx+keepalived高可用

1、在主备节点上都安装好nginx。nginx安装方法: https://www.51anidea.com/forum.php?mod=viewthread&tid=266&extra=page%3D1

2、安装好之后,编辑nginx的主页文件。 192.168.1.200(主节点)上操作: #vi /usr/share/nginx/html/index.html 清空该文件的内容,输入以下内容: 200

保存文件,退出。

3、192.168.1.102(备用节点)上操作: #vi /usr/share/nginx/html/index.html 清空该文件的内容,输入以下内容: 201

保存文件,退出。

4、测试

		(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将会跳转至主节点。

五、在实际生产环境中把vip地址(或者vip地址对应的域名)提供给用户访问,以达到高可用的目的。