一、服务器准备
ip | 服务器 | 软件 |
192.168.43.142 | 主机 1,主用 | Nginx+keepalived |
192.168.43.141 | 主机 2,备用 | Nginx+keepalived |
192.168.43.131 | 从机 1,应用服务 | Tomcat |
192.168.43.133 | 从机 2,应用服务 | Tomcat |
二、安装Nginx和keepalived
① 安装Nginx,参看博客《安装Nginx》
② Nginx的集群部署,参看博客《Nginx负载均衡》
③ 安装keepalived
1)、两台主机分别使用如下命令安装keepalived以及相关依赖
yum install -y openssl openssl-devel keepalived
2)、两台从机安装httpd服务
yum install -y httpd #安装httpd
systemctl start httpd #启动httpd
三、修改keepalived的配置文件
先查看一下自己的网卡
ip addr show
cd /etc/keepalived #打开keepalived的所在目录
mv keepalived.conf keepalived.conf.bak #备份一份原来的配置文件
vi keepalived.conf #编辑配置文件
① 主机 1 的配置文件
#主机1配置:
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id node-00
vrrp_mcast_group4 224.0.38.12
}
vrrp_script check_ngx { #脚本在引用前定义好
script "killall -0 nginx " #探测nginx服务是否正常
interval 1
weight -5
}
vrrp_instance VI_1 {
state MASTER # 表示是主用
interface eno16777736 #网卡,通过ip addr show查看-------这是要你修改的
virtual_router_id 38
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass x1er44q
}
virtual_ipaddress {
#192.168.43.100/24 对外暴露的ip-------这是要你修改的
192.168.43.100/24 dev eno16777736 #eno16777736为 ip addr show出来看到的
}
track_script { #在路由实例中引用自定义脚本
check_ngx
}
smtp_alert
}
② 主机 2 的配置文件
#主机2配置:
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id node-01
vrrp_mcast_group4 224.0.38.12
}
vrrp_script check_ngx {
script "killall -0 nginx"
interval 1
weight -5
}
vrrp_instance VI_1 {
state BACKUP #表示是备用
interface eno16777736 #-----这是要你修改的
virtual_router_id 38
priority 97
advert_int 1
authentication {
auth_type PASS
auth_pass x1er44q
}
virtual_ipaddress {
192.168.43.100/24 dev eno16777736 #----这是要你修改的
}
track_script {
check_ngx
}
smtp_alert
}
四、启动
① 关闭四台机器的防火墙
systemctl stop firewalld
② 启动两台从机的Tomcat服务
③ 启动两台主机的Nginx服务
④ 启动两台主机的keepalived服务
systemctl start keepalived
五、测试
① 正常情况
主备正常,访问暴露给外界的ip
负载均衡策略正常工作。
② 异常情况
主用的服务器挂掉
访问暴露给外界的ip
负载均衡策略正常工作。
查看备用服务器的ip状态
ip addr show
可以看到,备用上面将暴露的ip挂载上了。
主用服务器重启后,先关闭防火墙
systemctl stop firewalld #关闭防火墙
再开启Nginx和keepalived服务
cd /usr/local/nginx/sbin
./nginx #开启Nginx服务
systemctl start keepalived #开启keepalived服务
查看主备的ip
访问暴露的ip地址,负载均衡策略正常。
至此,Nginx+keepalived的高可用负载均衡集群配置策略完成!