前后端集群部署实例
增加三台机器
| 机器名 | IP | Port | 作用 |
|---|---|---|---|
| Frontend2 | 192.168.211.151 | 80 | 备用前端 |
| Backend2 | 192.168.211.153 | 8080 | 备用后端 |
| MySQL2 | 192.168.211.155 | 3306 | 备用数据库 |
Nginx配置
编辑/etc/nginx/conf.d/default.conf。

安装keepalived,编辑配置文件/etc/keepalived/keepalived.conf。
注释掉其中的vrrp_strict,并更改一下内容:

配置防火墙对vrrp数据包放行。
firewall-cmd --permanent --add-protocol=vrrp
firewall-cmd --reload
systemctl restart keepalived
配置健康监测脚本/etc/keepalived/nginx_health_check.sh
#!/bin/bash
A=`ps -C nginx --no-header | wc -l`
if [ $A -eq 0 ];then
/usr/sbin/nginx
if [ $A -eq 0 ];then
exit 1
else
exit 0
fi
else
exit 0
fi
为脚本配置执行权限chmod +x /etc/keepalived/nginx_health_check.sh
systemctl restart keepalived重启两台机器的keepalived,发现主节点持有VIP。

MySQL配置
编辑配置文件,在/etc/mysql/my.cnf。

在两个数据库创建用户用于同步数据,创建一个专门用于给从库使用的用户, 用于从库登录主库复制binlog日志。
create user 'backup'@'%' identified by '!!123Qwe123';
给上面创建的用户授予同步复制的权限。
grant replication slave ON *.* to 'backup'@'%';
刷新权限flush privileges;
M1节点绑定自己与M2的关系 (最重要的一步)
change master to
master_host='M2节点IP',
master_user='backup',
master_password='!!123Qwe123',
master_auto_position=1;
M2节点绑定自己与M1的关系 (最重要的一步)
change master to
master_host='M1节点IP',
master_user='backup',
master_password='!!123Qwe123',
master_auto_position=1;
M1和M2节点都启动复制start slave
查看从库的工作状态show slave status\G;
观察从库的两个线程是否工作正常
Slave_IO_Running: Yes #这里显示No说明从库无法登录主库进行复制
Slave_SQL_Running: Yes #这里显示No说明从库与主库数据不一样无法写入