Nginx+Keepalived搭建高可用Web服务器详细教程,基于最新版Keepalived2.0.20实现的安装与配置

 

目录

前言

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 安装环境

安装 Keepalived 安装必须的环境:

yum install -y gcc-c++ kernel-devel* openssl-* popt-devel openssh-clients libnl libnl-devel libnfnetlink-devel popt

安装组件如下图:

Nginx+Keepalived搭建高可用Web服务器详细教程,基于最新版Keepalived2.0.20实现的安装与配置_第1张图片

 

二、Keepalived 下载

可以在官网去下载:【Keepalived官网】

当然也可以支持哈博主:【Keepalived-2.0.20 Linux版本下载】

 

三、获取 Keepalived 安装包

上传到Linux服务器,并输入命令 “ tar -zxf keepalived-2.0.20.tar.gz ” 解压,获得Keepalived包,如下图:

 

四、编译 Keepalived

进入Keepalived包,配置Keepalived安装目录,输入指令 “ ./configure --prefix=/usr/local/keepalived ” ,编译过后如下图:

Nginx+Keepalived搭建高可用Web服务器详细教程,基于最新版Keepalived2.0.20实现的安装与配置_第2张图片

 

五、安装 Keepalived

输入指令 “ make && make install ” 进行安装,安装完成后,进入到目录 /usr/local/ 下可以看到 Keepalived 目录,如下图:

Nginx+Keepalived搭建高可用Web服务器详细教程,基于最新版Keepalived2.0.20实现的安装与配置_第3张图片

 

查看Keepalived 版本,输入指令 “ /usr/local/keepalived/sbin/keepalived -v ”,如下图:

Nginx+Keepalived搭建高可用Web服务器详细教程,基于最新版Keepalived2.0.20实现的安装与配置_第4张图片

 

六、配置 Keepalived

创建文件夹 /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地址
	}
}

 

七、启动 Keepalived

输入启动指令 “ systemctl start keepalived ”,keepalived 启动成功后,输入指令 “ ip addr ”,可以看到 keepalived 的VIP地址,如下图:

Nginx+Keepalived搭建高可用Web服务器详细教程,基于最新版Keepalived2.0.20实现的安装与配置_第5张图片

 

启动 keepalived:systemctl start keepalived

重启 keepalived:systemctl restart keepalived

停止 keepalived:systemctl stop keepalived

 

八、Keepalived 日志输出

keepalived 默认输出日志 “ /var/log/messages ”文件中,输入指令 “ tail -f /var/log/messages ”,如下图:

Nginx+Keepalived搭建高可用Web服务器详细教程,基于最新版Keepalived2.0.20实现的安装与配置_第6张图片

 

九、Keepalived 自定义日志输出

自定义配置 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 服务器

在主节点/备份节点上安装 nginx 服务器,参考【Centos-7.2 下 Nginx-1.9.9 安装图文详解】

 

十一、修改 Nginx

这儿为了便于测试,需要作一个简单的修改,以区分通过VIP访问时,当前正在访问那台服务器,

输入指令:vi /usr/local/nginx/html/index.html

修改如下图:

Nginx+Keepalived搭建高可用Web服务器详细教程,基于最新版Keepalived2.0.20实现的安装与配置_第7张图片

*注:这儿使用的128表示IP地址为192.158.159.128的服务器,133表示IP地址为192.168.159.133的服务器。

 

十二、Nginx+Keepalived高可用测试

访问主节点(192.168.159.128)服务器,如下图:

Nginx+Keepalived搭建高可用Web服务器详细教程,基于最新版Keepalived2.0.20实现的安装与配置_第8张图片

 

访问备节点(192.168.159.133)服务器,如下图:

Nginx+Keepalived搭建高可用Web服务器详细教程,基于最新版Keepalived2.0.20实现的安装与配置_第9张图片

 

访问Keepalived的VIP地址(192.168.159.199),如下图:

Nginx+Keepalived搭建高可用Web服务器详细教程,基于最新版Keepalived2.0.20实现的安装与配置_第10张图片

 

模拟主节点(128服务器)宕机的情况

查看VIP是否能跳转至备用节点(133服务器),

手动关闭主节点(128服务器),

输入指令:systemctl stop keepalived

刷新VIP地址,显示内容如下:

Nginx+Keepalived搭建高可用Web服务器详细教程,基于最新版Keepalived2.0.20实现的安装与配置_第11张图片

模拟恢复主节点(启动128服务器)

手动启动128服务器,查看VIP是否能成功从128备服务器跳转到133主服务器,

启动keepalived服务器,输入指令:systemctl start keepalived

再次刷新VIP-192.168.159.199,如下图:

Nginx+Keepalived搭建高可用Web服务器详细教程,基于最新版Keepalived2.0.20实现的安装与配置_第12张图片

在刷新页面的时候,会发现,当主节点(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
版权声明: 本文为博主原创文章,请在转载时务必注明博文出处!

你可能感兴趣的:(Nginx_Linux,Nginx,Keepalived,高可用Web服务器,负载均衡器,虚拟路由器)