APP下载

基于Nginx+Keepalived实现高可用集群及负载均衡配置与分析

2022-07-12胡科陈勇

微型电脑应用 2022年5期
关键词:配置文件备份命令

胡科, 陈勇

(长江大学, 计算机科学学院, 湖北, 荆州 434020)

0 引言

随着互联网现代信息网络技术的飞速发展及普遍应用,各种大型网站以及电商平台等大量涌现,为人们的生活提供了极大的便利,但是随之而来的是用户规模庞大访问量激增,企业门户网站、数据中心等的访问量更是急速增长。其实,大部分网站比如说电商网站都需要连续昼夜不间断地提供服务,任何服务中断都会给用户和企业带来不可估量的损失。

因此,为企业搭建高可用集群显得尤为必要,它可以对外不间断提供服务,最大地降低了因其他因素造成的故障对企业业务的影响。基于Nginx作为反向代理搭建集群起负载均衡的方式[1]也受到了各种大型网站的普遍运用,可以通过适当地增减服务器数量,提高网站扩展性并且解决大型网站的并发压力。

1 高可用集群

1.1 概述

高可用集群技术是指减少中断时间和降低服务量为主的服务器集群技术[2-3],它可以持续地为用户提供服务。高可用集群必须运行于至少2个节点以上,当一台机器出现故障时,另一台机器可承担服务任务,从而保证系统能持续地对外服务。

1.2 Nginx

Nginx是一款高性能的具有HTTP和反向代理的Web服务器,能经受住高负载的考验,专为性能优化而开发。Nginx的核心是负载调度算法,通过算法轮询、weight权重等策略方式将客户端发来的请求转发至不同的服务器上,提高服务器的并发量。因它简单的配置文件,CPU、内存资源消耗低,并发能力强且运行非常稳定,从而受到广大网站用户的欢迎。

1.3 Keepalived

Keepalived是集群管理中的服务软件,它刚开始是专为Linux虚拟服务器负载均衡设计的,也可以管理Linux虚拟服务器集群系统中各个服务节点的状态。直到又加入了可以实现高可用的VRRP(虚拟路由冗余协议)功能,目的就是为了保证当个别节点宕机时,整个网络还可以正常地运行。因此,Keepalived还可以作为其他服务(例如Nginx)的高可用解决方案软件,它通过检查服务器的状态可以将失效机隔离出去,这样我们就可以实现Nginx集群以及高可用技术。

1.4 Tomcat

Tomcat是一个免费开源的Web轻量级应用服务器,其中连接器和容器是它的核心组成部分,在中小型系统和并发量小的场合下被普遍应用,这里可用于模拟集群中的服务器。

1.5 Docker

Docker是一个用Go语言开发开源的应用容器引擎,它可以将开发者们的完整应用打包封装并独立部署到一个可移植的容器中,这样就可以发布并运行在任何的Linux机器上,无需复杂的外部硬件设备。Docker容器拥有系统资源更高效性,可以响应式部署和扩展的优点。

2 负载均衡

新网站刚开始的时候没有多少访问流量,可以毫无压力地访问,但是当这个网站访问量和并发量上升的时候,访问网站会有延迟卡顿甚至根本访问不到的情况,那么这个时候就需要用到负载均衡[4]。在以前,部署的都是单个服务器,现在则需要部署多个服务器集群,把客户端流量分散到集群中不同服务器上,这就可以交给负载均衡技术去解决了。使用了负载均衡后,每个节点机器上处理的请求相对会少很多,所以能够解决访问延迟卡顿和访问失败的问题[5],提高网站用户体验。

3 高可用集群实验设计

3.1 环境配置

实验环境为Linux环境下的CentOS 7.0版本,需配置2台机器,每台机器都要安装Keepalived和Nginx。为了效果能够更好,将Nginx反向代理加2个版本的Tomcat实现负载均衡,还需要装上Docker以及Tomcat。

3.2 Nginx以及Keepalived安装

默认情况下CentOS7中没有Nginx的源,Nginx官方提供了源,所以执行以下命令添加源(见图1):rpm-Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm。

图1 安装Nginx源

之后便可以安装Nginx了,用命令yum install-y nginx安装成功之后将Nginx设置开机自启,并关掉防火墙。

接下来安装Keepalived、yum install keepalived,安装成功之后会发现在/etc目录下会生成Nginx和Keepalived文件夹,里面有我们需要编辑的配置文件,包括nginx.conf和keepalived.conf,如图2所示。

图2 安装Nginx并设置开机自启

3.3 配置Keepalived

第1步:打开主机器的/etc/keepalived目录的keepalived.conf配置文件,里面有很多节点,我们主要配置的是global_defs全局定义节点和vrrp_inatance VI_1实例配置节点,其余都可以不管。

global_defs:把vrrp_strict这一行去掉,要严格符合VRRP协议。然后修改router_id 为KEEPALIVED_NGINX_MASTER,以便识别。

第2步:打开/etc/hosts配置文件,里面需要添加一行127.0.0.1 KEEPA LIVED_NGINX_MASTER。

vrrp_inatance VI_1:这里面我们需要自定义虚拟IP为自己的虚拟机IP,后面2位改为自己惯用的IP即可。

3.4 克隆实验机

先把虚拟机关掉,然后克隆1台主机master,其IP为192.168.45.129,这里称为备份机。

第1步:打开备份机的keepalived.conf配置文件,将global_defs里面的router_id改为KEEPALIVED_NGINX_BACKUP,以及vrrp_inatance VI_1里面的state改为BACKUP,还有priority改为50。

第2步:打开/etc/hosts配置文件,里面需要添加一行127.0.0.1 KEEPA LIVED_NGINX_BACKUP。到此备份机修改完毕,集群也搭建完毕。

3.5 高可用集群测试

首先修改一下Ngixn的默认目录root/usr/share/nginx/html,修改index.html内容为当前机器IP,以便区分主机和备份机。

第1步:现在启动Keepalived命令systemctl start keepalived.service,然后访问前面设置的虚拟IP,结果出现的是主机IP,因为128是主机器,权重高。

第2步:我们如果让128挂掉,在主机里面用systemctl stop keepaliveed.service命令,备份机保持Keepalived开启的状态。这个时候的结果是自动切换至备份机129,说明高可用集群搭建成功,也可以看到在主机挂掉的情况下,访问虚拟IP可以直接切换至备份机。

4 负载均衡实验设计

4.1 安装Docker以及Tomcat

第1步:首先设置Docker的yum源,yum-config-manager--add-repo,https://download.docker.com/linux/centos/do-cker-ce.repo,然后安装最新版本的Docker,yum install docker-ce docker-ce-cli containerd.io即可。验证一下是否安装成功,输入查看Docker的版本即可,如图3所示。

图3 查看Docker版本

第2步:安装Tomcat,在这里直接使用命令docker pull tomcat:7即可完成安装步骤,注意要装7版本和8版本2个,装完之后可以检验一下,用docker images命令,主机和备份机都要装上,如图4所示。

图4 安装Tomcat

第3步:启动Tomcat7,docker run -d -p 8080:8080 e614000ce544,这里的是版本7的镜像ID。注意:Tomcat8版本的默认WebApps下是空的,我们需要删除,然后把webapp.dist改名为webapps即可,用mv webapps.dist/ webapps命令(见图5)。

图5 修改webapp.dist文件

第4步:全部配置完成之后,我们可以打开浏览器测试,输入192.168.45.128:8080,也就是主机IP,出现的是Tomcat7版本。当输入192.168.45.129:8080时,也就是备份机IP,出现的是Tomcat8版本。

4.2 配置Nginx及负载均衡

我们修改主机的Nginx配置文件,找到/etc/nginx目录,打开nginx.conf配置文件,在include /etc/nginx/conf.d/*.conf;上方加上如下内容:

upstream www.huke.com{

server 192.168.45.128:8080;

server 192.168.45.129:8080;

}

其中,upstream是配置Nginx与后端服务器负载均衡不可缺少的一个模块,还可以对后端服务器的状态进行检查监控,然后添加自定义的域名,weight是权重配置,权重越高,分配到的概率越大。

然后,修改nginx/nginx/conf.d/下的default.conf文件,将其中的proxy_pass改为前面我们设置的域名即可,另外备份机也需要修改,也是一样的修改内容。

全部配置完成后,我们就可以用IP192.168.45.128测试,会发现随机的通向Tomcat7版本或者8版本,另外用IP192.168.45.129或者192.168.45.99可以直接随机通向Tomcat7或者8版本,这样就实现了负载均衡。

5 总结

现在企业中都要配置高可用集群,缓解服务器压力,以上实验利用开源软件Nginx+Keepalived实现了高可用负载均衡架构,通过上述构建过程,完成了基本的集群部署以及实现了负载均衡。此架构能有效缓解服务器的压力,解决并发压力,提高应用处理性能,为企业提供了一个良好平台。

猜你喜欢

配置文件备份命令
基于Docker的实时数据处理系统配置文件管理软件的设计与实现
管理Windows10的PowerShell命令行使用记录
利用云备份微信聊天记录
从Windows 10中删除所有网络配置文件
疫情就是命令 防控就是责任
如何只备份有用数据而不备份垃圾数据
用软件处理Windows沙盒配置文件
互不干涉混用Chromium Edge
Windows10应用信息备份与恢复
解析Windows10的内部命令