目录
前言
Nginx+Keepalived搭建高可用Web服务器详细教程
一、准备 Keepalived 安装环境
二、Keepalived 下载
三、获取 Keepalived 安装包
四、编译 Keepalived
五、安装 Keepalived
六、配置 Keepalived
七、启动 Keepalived
八、Keepalived 日志输出
九、Keepalived 自定义日志输出
十、安装 Nginx 服务器
十一、修改 Nginx
十二、Nginx+Keepalived高可用测试
前言
Nginx 在当前作为最常见的负载均衡服务器,系统中基本上所有的请求都会到 Nginx,可见 Nginx 在整个系统运行过程中处于重要的地位,一旦Nginx服务器宕机,所有后端 web 服务将无法正常提供服务,如果涉及到高度重要的数据,例如:财务数据等,后果将不堪设想。
为了屏蔽 Nginx 负载均衡服务器的宕机,至少需要建立一个主/备服务器。主服务器和备份服务器上都运行高可用监控程序,通过组播消息来监控对方的运行状况。当备份机不能在一定的时间内收到组播消息时,它就接管主服务器的服务IP并继续提供负载均衡服务;当备份管理器又从主管理器收到主服务器的组播消息时,备份服务器将主动释放服务IP地址,这样,主服务器就开始再次提供负载均衡服务了。
在上一篇文章中对 《 VRRP协议的工作机制介绍,Keepalived内部架构及其实现原理解析 》进行了认识和了解,本片文章主要对将Nginx+Keepalived 搭建高可用Web服务器详细教程。是基于当前最新版本的Keepalived2.0.20来配置的,因为老版本和新版本的配置的区别很大的,更多的具体的相关内容,请点击文章末尾的官网连接进行了解。感谢支持!!!
Nginx+Keepalived搭建高可用Web服务器详细教程
安装 Keepalived 安装必须的环境:
yum install -y gcc-c++ kernel-devel* openssl-* popt-devel openssh-clients libnl libnl-devel libnfnetlink-devel popt
安装组件如下图:
可以在官网去下载:【Keepalived官网】
当然也可以支持哈博主:【Keepalived-2.0.20 Linux版本下载】
上传到Linux服务器,并输入命令 “ tar -zxf keepalived-2.0.20.tar.gz ” 解压,获得Keepalived包,如下图:
进入Keepalived包,配置Keepalived安装目录,输入指令 “ ./configure --prefix=/usr/local/keepalived ” ,编译过后如下图:
输入指令 “ make && make install ” 进行安装,安装完成后,进入到目录 /usr/local/ 下可以看到 Keepalived 目录,如下图:
查看Keepalived 版本,输入指令 “ /usr/local/keepalived/sbin/keepalived -v ”,如下图:
创建文件夹 /etc/keepalived ,并将 Keppalived 的配置文件 “ /usr/local/keepalived/etc/keepalived/keepalived.conf ”复制到 /etc/keepalived 目录下,因为 keepalived 服务启动的是后,默认会去 /etc/keepalived 目录下加载配置文件 " keepalived.conf "
[root@192 /]# mkdir /etc/keepalived/ -p
[root@192 /]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
[root@192 /]#
keepalived 主节点配置:
自定义配置文件,清空(:%d)原 keepalived.conf 配置文件,键入如下VRRP配置即可(其实,Keepalived 核心为VRRP,配置个VRRP实例就可以了):
vrrp_instance VIP_1 { ### 实例名称,VIP_1即实例名
state MASTER ### 标记该节点是主节点(master)
interface ens33 ### 配置vip绑定的网卡,ens33是网卡名,按照实际情况修改成你自己(网卡名查询:ifconfig)。vip指的是虚拟ip地址
virtual_router_id 51 ### 取1-255之间的值,主备节点的值需要设置成一样的,成为一个组
priority 100 ### 权重,该数值最大的节点即为主节点
advert_int 1 ### 主备节点之间通讯的时间间隔(单位:秒),用于判断主节点是否存活
authentication {
auth_type PASS ### 认证方式
auth_pass 123456 ### 认证密码
}
virtual_ipaddress {
192.168.159.199 ### vip地址
}
}
keepalived 备节点配置:
自定义配置文件,清空(:%d)原 keepalived.conf 配置文件,键入如下VRRP配置即可(其实,Keepalived 核心为VRRP,配置个VRRP实例就可以了):
vrrp_instance VIP_1 { ### 实例名称,VIP_1即实例名
state BACKUP ### 标记该节点是备用节点(backup)
interface ens33 ### 配置vip绑定的网卡,eno16777736是网卡名,按照实际情况修改成你自己###的网卡名。vip指的是虚拟ip地址
virtual_router_id 51 ### 取1-255之间的值,主备节点的值需要设置成一样的,成为一个组
priority 99 ### 权重,该数值必须小于主节点
advert_int 1 ### 主备节点之间通讯的时间间隔(单位:秒),用于判断主节点是否存活
authentication { ### 身份认证
auth_type PASS ### 认证方式
auth_pass 123456 ### 认证密码
}
virtual_ipaddress {
192.168.159.199 ### vip地址,设置成跟主节点一样的vip地址
}
}
输入启动指令 “ systemctl start keepalived ”,keepalived 启动成功后,输入指令 “ ip addr ”,可以看到 keepalived 的VIP地址,如下图:
启动 keepalived:systemctl start keepalived
重启 keepalived:systemctl restart keepalived
停止 keepalived:systemctl stop keepalived
keepalived 默认输出日志 “ /var/log/messages ”文件中,输入指令 “ tail -f /var/log/messages ”,如下图:
自定义配置 keepalived 日志文件,为什么需要自定义?,因为 messages 日志文件 Linux 下是用来记录 Linux 内核消息及各种应用程序的公共日志信息文件,其中包括了启动、IO错误、网络错误、程序错误等等。鱼龙混杂,所以,如果需要更方便的查看keepalived日志,就需要单独的分离出来,
分离 keepalived 日志文件,
第一步:
将 keepalived 日志输出到 local0 ,输入指令 “ vi /usr/local/keepalived/etc/sysconfig/keepalived ”,
在文件中修改“ KEEPALIVED_OPTIONS ”的参数为 “ -D -d -S 0 ”,如下图:
第二步:
在系统日志配置文件“ rsyslog.conf ”的末尾添加 local0 映射的文件,
输入指令:vi /etc/rsyslog.conf
添加内容为:local0.* /var/log/keepalived.log
第三步:
重启服务
重启 rsyslog 服务:systemctl restart rsyslog
重启 keepalived 服务:systemctl restart keepalived
第三步:
查看 Keepalived 自定义日志文件
进入配置的 keepalived 日志目录,会看到 “ keepalived.log ”日志文件,
实时查看 keepalived 日志的输出,输入指令:tail -f keepalived.log
如下图:
在主节点/备份节点上安装 nginx 服务器,参考【Centos-7.2 下 Nginx-1.9.9 安装图文详解】
这儿为了便于测试,需要作一个简单的修改,以区分通过VIP访问时,当前正在访问那台服务器,
输入指令:vi /usr/local/nginx/html/index.html
修改如下图:
*注:这儿使用的128表示IP地址为192.158.159.128的服务器,133表示IP地址为192.168.159.133的服务器。
访问主节点(192.168.159.128)服务器,如下图:
访问备节点(192.168.159.133)服务器,如下图:
访问Keepalived的VIP地址(192.168.159.199),如下图:
模拟主节点(128服务器)宕机的情况
查看VIP是否能跳转至备用节点(133服务器),
手动关闭主节点(128服务器),
输入指令:systemctl stop keepalived
刷新VIP地址,显示内容如下:
模拟恢复主节点(启动128服务器)
手动启动128服务器,查看VIP是否能成功从128备服务器跳转到133主服务器,
启动keepalived服务器,输入指令:systemctl start keepalived
再次刷新VIP-192.168.159.199,如下图:
在刷新页面的时候,会发现,当主节点(128服务器)恢复正常后,VIP回快速的跳转回主节点。
*注:在实际生产环境中,只需提供VIP地址(或者VIP对应的域名地址)给用户访问,以达到高可用的目的,千万切记,不可提供实际的服务器IP地址给用户,如果提供实际的服务器IP地址,当服务器真的宕机的时候,用户将不能正常访问服务器,也就达不到高可用的目的,所以,这儿需要切记!!!
参考文档:
Keepalived 官网:【https://www.keepalived.org/】
好了,关于 Nginx+Keepalived搭建高可用Web服务器详细教程,基于最新版Keepalived2.0.20实现的安装与配置 就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,也可以给我留言哦,我会一一详细的解答的。
歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注CSND的IT社区。
作 者: | 华 仔 |
联系作者: | [email protected] |
来 源: | CSDN (Chinese Software Developer Network) |
原 文: | https://blog.csdn.net/Hello_World_QWP/article/details/104447076 |
版权声明: | 本文为博主原创文章,请在转载时务必注明博文出处! |