centos7安装keepalived以及与nginx设置高可用集群配置

内容解释

集群:多台服务器组成的为了响应高数据量访问的架构体系

特点:成本高,能够降低单台服务器的压力,是流量平均分配到多台服务器。

分类:高可用集群,负载均衡集群,科学计算集群

高可用集群是指以减少服务中断时间为目的的服务器集群技术。它通过用户的业务程序对外不间断提供的服务,把因软件、硬件、人为造成的故障对业务的影响造成最低。举个栗子:tb有很多发货仓,一般给我们发货的是离我们最近的仓库,假如s市的仓库因洪水而没有办法给s市市民发货时,tb就会让他最近的一个发货仓给市民发货,这样就不会耽误市民。我们这个服务器集群就是市民一般访问的是主服务器,当主服务器崩溃时,其他服务器就会担任起主服务器的功能,以作备用。

负载均衡集群:市民的需求比较杂,例如图片的加载在一个服务器上,视频的加载在另一个服务器上,多个不同的资源可能在多个服务器上,这些服务器构成了一个集群,这样就可以分担市民需求的压力了。

  总的来说,服务器集群的目的就是为了确保关键资源或服务最大限度的可用性。

 

 

1.环境准备

1.两台虚拟机都装有nginx以及ssl模块(两个的ip地址可以是静态也可以是动态的,目前对我来说动态的缺点就是不知道什么时候使用时,会突然的因为ip地址不对的原因而登录不上去.....这个问题深有体会呀)   以下地址都是动态ip(听师傅说,如果想要静态ip可以使用nat网卡模式,如果更改请看上一篇博客)这里也有小伙伴更改静态ip的过程,感兴趣的可以戳这里https://blog.csdn.net/wangwei021933/article/details/99063301
   我的ip地址主:192.168.96.153         副:192.168.96.154     vip:192.168.96.22

vip地址很随意,他就是一个方便访问的ip,但是需要注意的就是这个ip不能和别人的ip冲突。检验这个ip是否可用,可用ping来测试。

 2.安装依赖插件(两台都需要)

yum install -y gcc openssl-devel popt-devel
yum install -y libnl libnl-devel
yum install -y libnfnetlink-devel
yum -y install psmisc

2.安装keepalived(两台都需要)

1.关闭selinux

setenforce 0

   2.编辑配置文件,关闭开机自启

vi /etc/selinux/config

selinux=enforcing改成selinux=disabled

3.下载keepalived

 wget https://www.keepalived.org/software/keepalived-2.0.18.tar.gz

centos7安装keepalived以及与nginx设置高可用集群配置_第1张图片

4.解压

tar -zxvf keepalived-2.0.18.tar.gz

5.进入到安装目录下,进行预编译

cd keepalived-2.0.18
 ./configure --prefix=/usr/local/keepalived

6.安装

make && make install

7.将keepalived注册为系统文件

cp keepalived/etc/init.d/keepalived /etc/init.d
cp keepalived/etc/sysconfig/keepalived /etc/sysconfig/

 

3.配置文件(主副机有差异时会标识主,副)

1.两个都输入

mkdir -p /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
vi /etc/keepalived/keepalived.conf

2.编辑文件

主机配置:

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1      //这个地址是当服务器宕机后给我们发邮件的用的,木来咱们涉及不到
   smtp_connect_timeout 30        //设置smtp超时连接时间’
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0}

vrrp_instance VI_1 {
    state MASTER   
    interface ensp0s3         //注意网卡名字,为当前虚拟机的网卡,可通过ifconfig来查询
    virtual_router_id 51
    priority 100               //优先级,数字越大越有先’
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    
    virtual_ipaddress {       
        192.168.96.22           //首页提到的vip地址’     
    }
}

副:

将上文的部分内容进行更改

vrrp_instance VI_1 {
    state BACKUP       //将maste 进行更改
    interface ens33   
    virtual_router_id 51
    priority 80         //数字改为比100小的
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }

这里有较为全面的代码解释,仅供参考

centos7安装keepalived以及与nginx设置高可用集群配置_第2张图片

 

3.创建nginx脚本

vi /opt/check_nginx.sh

编辑文本

A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then  //如果nginx没在运行
   systemctl start nginx.service  //启动nginx
   sleep 2
   if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then  //如果无法启动
	killall keepalived  //杀死keepalived进程
   fi
fi

4.编辑keepalived配置文件

vi /etc/keepalived/keepalived.conf

插入两段代码


1.


vrrp_script check_nginx {
   script "/root/check_nginx.sh"
   interval 2
   weight 2
}





2.

track_script { 
        check_nginx
    }

插入位置

centos7安装keepalived以及与nginx设置高可用集群配置_第3张图片

centos7安装keepalived以及与nginx设置高可用集群配置_第4张图片

5.启动keepalived服务,并设置开机自启

service keepalived start
systemctl enable keepalived  //配置开机自启动

6.为了区分主副机,可以更改主机的界面(以TAT为实例)

输入

vi /usr/local/nginx/html/index.html

centos7安装keepalived以及与nginx设置高可用集群配置_第5张图片

由于我这个虚拟机装的keepalived版本有点低。然后他显示的界面就显示不出来....这里就不展示了....

 

测试

在浏览器中输入你的vip+端口 我的就是192.168.96.22:8080       愿意戳这个链接的就戳,但是不一定能进去,毕竟他是动态ip,关于这个问题,我会在将来将动态ip改为静态ip这样他就不会有变动了

当我们手动关掉主机的keepalived服务时  我们刚才浏览的界面就会变成副虚拟机的界面。当我们手动开启主界面时,刷新时就又会变成主界面了

 

 

 

小知识:

你有没有会编辑文本时需要输入一大堆文本,为了减少工作量。我们可以复制粘贴这些文本,

方法一:在虚拟机与物理机建立一个共享文件夹,这样就可以将主副机的文件进行传送

方法二:点击虚拟机上面一栏中的设备--安装增强功能--下载

方法三:虚拟机里面是有一个自动补全代码功能的就是按tab键,他会自动补全你的代码,当你按两次tab时他会显示你当前文件下面都有那些文件夹,自动补全就是根据这一文件下的存在的文件名来补全的

这样是不是就可以减少我们的工作量了

方法四:根据虚拟机中有一个ssh的模块,我们可以根据这个模块让我们的虚拟机与其他软件相连,例如手机上的某个软件,或者物理机上的其他软件,与这些软件相连,一方面可以让我们虚拟机那界面变得更好看,不再是纯黑色的,另一方面就是我们可以通过这些软件来操作虚拟机,在这些软件上面我们可以使用复制粘贴快捷键的,请记住是ssh模块不是ssl模块!

 

还有一个小知识就是在编辑文本时在下方输入/xxx

那么他就会查找并定位到这个xxx单词上

 

 

 

你可能感兴趣的:(虚拟机)