一、 环境准备
centos7.4 (10.44.44.115-node2)master
centos7.4 (10.44.44.116-node3)slave
nginx-1.17.9.tar.gz(源码安装)
keepalived-1.3.5-16.el7.x86_64 (yum安装)
二、 安装nginx
2.1 第一台nginx
1)第一台ecs(10.44.44.115)中执行
下载nginx-1.17.9.tar.gz
#tar -zxvf nginx-1.17.9.tar.gz
#cd nginx-1.17.9
#./configure
#make && make install
2、查看安装位置
[root@node2 nginx-1.17.9]# whereis nginx
nginx: /usr/local/nginx
3、然后编辑下/usr/local/nginx/html/index.html,加入标识 ,10.44.44.115这台机器
4、启动 cd /usr/local/nginx/sbin中,./nginx 并检查端口80 ,ss -nl |grep 80有没有监听
5、网页访问10.44.44.115
2.2 第二台nginx
1、第二台ecs(10.44.44.116)中执行
下载nginx-1.17.9.tar.gz
#tar -zxvf nginx-1.17.9.tar.gz
#cd nginx-1.17.9
#./configure
#make && make install
2、查看安装位置
[root@node3 nginx-1.17.9]# whereis nginx
nginx: /usr/local/nginx
3、然后编辑下/usr/local/nginx/html/index.html,加入标识 ,10.44.44.116这台机器
4、启动 cd /usr/local/nginx/sbin中,./nginx 并检查端口80 ,ss -nl |grep 80有没有监听
5、网页访问10.44.44.116
三、 安装keepalived
3.1 master中安装keepalived
#yum –y install keepalived ,两台同样的操作
3.2 修改master中keepalived.conf配置
#cd /etc/keepalived/
#cp keepalived.conf keepalived.conf.bak
#vim keepalived.conf
global_defs {
}
vrrp_script chk_nginx {
script "/etc/keepalived/check.sh"
interval 1
weight -15
}
vrrp_instance VI_1 { # 实例,一个vip一个实例
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.1.1
}
track_script {
chk_nginx
}
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
}
3.2 创建notify.sh和check.sh脚本
1)创建check脚本
vim /etc/keepalived/check.sh
#!/bin/bash
# 心跳检测:如果服务还在运行返回0,否则返回1
if [ "`pgrep nginx | wc -l`" == "0" ] ; then
exit 1
else
exit 0
fi
2)创建通知脚本(notify.sh)
vim /etc/keepalived/notify.sh
#!/bin/bash
# 通知脚本:具体操作
if [ "$1" == "master" ] ; then
echo "`date '+%F %T'`:切换到主机模式" >> /var/log/keepalived/keepalived.log
elif [ "$1" == "backup" ] ; then
/usr/bin/systemctl start nginx
echo "`date '+%F %T'`:切换到备机模式" >> /var/log/keepalived/keepalived.log
else
/usr/bin/systemctl start nginx
echo "`date '+%F %T'`:宕机" >> /var/log/keepalived/keepalived.log
fi
最后创建目录mkdir /var/log/keepalived
3)启动master的keepalived服务
#systemctl start keepalived
3.2 backup中安装keepalived
1)修改backup中keepalived.conf配置
2)把master中notify和check两个脚本传给slave上,并创建mkdir /var/log/keepalived
3)启动bakeup的keepalived服务
四、 测试
4.1 测试负载均衡
4.2 测试心跳检测
主服务器:10.44.44.115