集群:多台服务器组成的为了响应高数据量访问的架构体系
特点:成本高,能够降低单台服务器的压力,是流量平均分配到多台服务器。
分类:高可用集群,负载均衡集群,科学计算集群
高可用集群是指以减少服务中断时间为目的的服务器集群技术。它通过用户的业务程序对外不间断提供的服务,把因软件、硬件、人为造成的故障对业务的影响造成最低。举个栗子:tb有很多发货仓,一般给我们发货的是离我们最近的仓库,假如s市的仓库因洪水而没有办法给s市市民发货时,tb就会让他最近的一个发货仓给市民发货,这样就不会耽误市民。我们这个服务器集群就是市民一般访问的是主服务器,当主服务器崩溃时,其他服务器就会担任起主服务器的功能,以作备用。
负载均衡集群:市民的需求比较杂,例如图片的加载在一个服务器上,视频的加载在另一个服务器上,多个不同的资源可能在多个服务器上,这些服务器构成了一个集群,这样就可以分担市民需求的压力了。
总的来说,服务器集群的目的就是为了确保关键资源或服务最大限度的可用性。
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
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
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/
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
}
这里有较为全面的代码解释,仅供参考
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
}
插入位置
5.启动keepalived服务,并设置开机自启
service keepalived start
systemctl enable keepalived //配置开机自启动
6.为了区分主副机,可以更改主机的界面(以TAT为实例)
输入
vi /usr/local/nginx/html/index.html
由于我这个虚拟机装的keepalived版本有点低。然后他显示的界面就显示不出来....这里就不展示了....
测试
在浏览器中输入你的vip+端口 我的就是192.168.96.22:8080 愿意戳这个链接的就戳,但是不一定能进去,毕竟他是动态ip,关于这个问题,我会在将来将动态ip改为静态ip这样他就不会有变动了
当我们手动关掉主机的keepalived服务时 我们刚才浏览的界面就会变成副虚拟机的界面。当我们手动开启主界面时,刷新时就又会变成主界面了
小知识:
你有没有会编辑文本时需要输入一大堆文本,为了减少工作量。我们可以复制粘贴这些文本,
方法一:在虚拟机与物理机建立一个共享文件夹,这样就可以将主副机的文件进行传送
方法二:点击虚拟机上面一栏中的设备--安装增强功能--下载
方法三:虚拟机里面是有一个自动补全代码功能的就是按tab键,他会自动补全你的代码,当你按两次tab时他会显示你当前文件下面都有那些文件夹,自动补全就是根据这一文件下的存在的文件名来补全的
这样是不是就可以减少我们的工作量了
方法四:根据虚拟机中有一个ssh的模块,我们可以根据这个模块让我们的虚拟机与其他软件相连,例如手机上的某个软件,或者物理机上的其他软件,与这些软件相连,一方面可以让我们虚拟机那界面变得更好看,不再是纯黑色的,另一方面就是我们可以通过这些软件来操作虚拟机,在这些软件上面我们可以使用复制粘贴快捷键的,请记住是ssh模块不是ssl模块!
还有一个小知识就是在编辑文本时在下方输入/xxx
那么他就会查找并定位到这个xxx单词上