部署反向代理高可用、web集群动静分离、MySQL集、NFS
一、实验步骤

1、部署框架前准备工作
| 服务器类型 | 部署组件 | ip地址 |
|---|---|---|
| DR1调度服务器 主(ha01) | Keepalived+LVS-DR | 20.0.0.210 |
| DR2调度服务器 备 (ha02) | Keepalived+LVS-DR | 20.0.0.220 |
| web1节点服务器 (slave01) | Nginx+Tomcat+MySQL 备+MHA manager+MHA node | 20.0.0.100 |
| web2节点服务器 (slave02) | Nginx+Tomcat +MySQL 备+MHA node | 20.0.0.200 |
| NFS存储服务器(master01) | MySQL 主+NFS+MHA node | 20.0.0.230 |
| vip | 虚拟ip | 20.0.0.10 |
实验要求
通过keepalived的虚拟ip(vip)访问静态或者动态网页,mysql中的master节点能够实现故障自动切换
2、准备环境(关闭防护墙、修改主机名)
[root@localhost ~]# systemctl stop firewalld.service && setenforce 0
[root@localhost ~]# hostnamectl set-hostname ha01
[root@localhost ~]# hostnamectl set-hostname ha02
[root@localhost ~]# hostnamectl set-hostname slave01
[root@localhost ~]# hostnamectl set-hostname slave01
[root@localhost ~]# hostnamectl set-hostname master01
[root@localhost ~]# su
3、部署LVS-DR
3.2 、配置负载调度器ha01与ha02同时配置(20.0.0.210、20.0.0.220)
[root@ha01 ~]# modprobe ip_vs
[root@ha01 ~]# cat /proc/net/ip_vs
## 加载ip_vs模块,并查看版本信息
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@ha01 ~]# yum install -y ipvsadm

3.2、配置虚拟ip地址(VIP:20.0.0.10)
[root@ha01 ~]# cd /etc/sysconfig/network-scripts/
[root@ha01 network-scripts]# ls
ifcfg-ens33 ifdown-ipv6 ifdown-TeamPort ifup-ippp ifup-routes network-functions
ifcfg-lo ifdown-isdn ifdown-tunnel ifup-ipv6 ifup-sit network-functions-ipv6
ifdown ifdown-post ifup ifup-isdn ifup-Team
ifdown-bnep ifdown-ppp ifup-aliases ifup-plip ifup-TeamPort
ifdown-eth ifdown-routes ifup-bnep ifup-plusb ifup-tunnel
ifdown-ib ifdown-sit ifup-eth ifup-post ifup-wireless
ifdown-ippp ifdown-Team ifup-ib ifup-ppp init.ipv6-global
[root@ha01 network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0
[root@ha01 network-scripts]# vim ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=20.0.0.10
NETMASK=255.255.255.255

==================================================================================================
注意:当配置备LVS-DR调度服务器时会出现ip报错冲突,重启网卡就可以解决了
[root@ha02 network-scripts]# ifup ifcfg-ens33:0
ERROR : [/etc/sysconfig/network-scripts/ifup-eth] Error, some other host (00:0C:29:1F:FB:2F) already uses address 20.0.0.10.
[root@ha02 network-scripts]# systemctl restart network
[root@ha02 network-scripts]# ifup ifcfg-ens33:0

==================================================================================================
[root@ha01 network-scripts]# ifup ifcfg-ens33:0
[root@ha01 network-scripts]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 20.0.0.210 netmask 255.255.255.0 broadcast 20.0.0.255
inet6 fe80::fa76:f2fe:47ea:cebf prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:1f:fb:2f txqueuelen 1000 (Ethernet)
RX packets 21454 bytes 29257870 (27.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 9843 bytes 614500 (600.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 20.0.0.10 netmask 255.255.255.255 broadcast 20.0.0.10
ether 00:0c:29:1f:fb:2f txqueuelen 1000 (Ethernet)
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 386 bytes 34810 (33.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 386 bytes 34810 (33.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:7b:ec:da txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

[root@ha01 network-scripts]# route add -host 20.0.0.10 dev ens33:0
[root@ha01 network-scripts]# vim /etc/rc.local
/usr/sbin/route add -host 20.0.0.10 dev ens33:0

3.3、配置ARP内核响应参数防止更新VIP中的MAC地址,避免发生冲突
[root@ha01 network-scripts]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 0
#proc响应关闭重定向功能
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

[root@ha01 network-scripts]# sysctl -p
## 加载配置文件生效
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
3.4、配置负载均衡分配策略
[root@ha01 network-scripts]# ipvsadm-save > /etc/sysconfig/ipvsadm
## 保持策略
[root@ha01 network-scripts]# systemctl start ipvsadm.service
## 开启ipvsadm服务
[root@ha01 network-scripts]# ipvsadm -C
## 情况策略,添加虚拟ip地址,指定负载均衡算法给两台web节点服务器
[root@ha01 network-scripts]# ipvsadm -A -t 20.0.0.10:80 -s rr
[root@ha01 network-scripts]# ipvsadm -a -t 20.0.0.10:80 -r 20.0.0.100:80 -g
[root@ha01 network-scripts]# ipvsadm -a -t 20.0.0.10:80 -r 20.0.0.200:80 -g
[root@ha01 network-scripts]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP ha01:http rr
-> 20.0.0.100:http Route 1 0 0
-> 20.0.0.200:http Route 1 0 0


3.5、配置web节点服务器(两台slave同时部署 20.0.0.100 、20.0.0.200)
3.5.1、配置虚拟ip地址(VIP:20.0.0.10)
[root@slave01 ~]# cd /etc/sysconfig/network-scripts/
[root@slave01 network-scripts]# ls
ifcfg-ens33 ifdown-ipv6 ifdown-TeamPort ifup-ippp ifup-routes network-functions
ifcfg-lo ifdown-isdn ifdown-tunnel ifup-ipv6 ifup-sit network-functions-ipv6
ifdown ifdown-post ifup ifup-isdn ifup-Team
ifdown-bnep ifdown-ppp ifup-aliases ifup-plip ifup-TeamPort
ifdown-eth ifdown-routes ifup-bnep ifup-plusb ifup-tunnel
ifdown-ib ifdown-sit ifup-eth ifup-post ifup-wireless
ifdown-ippp ifdown-Team ifup-ib ifup-ppp init.ipv6-global
[root@slave01 network-scripts]# cp ifcfg-ens33 ifcfg-lo:0
[root@slave01 network-scripts]# vim ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=20.0.0.10
NETMASK=255.255.255.255

[root@slave01 network-scripts]# ifup ifcfg-lo:0
## 开启虚拟网卡
[root@slave01 network-scripts]# ifconfig
## 查看网卡

[root@slave01 network-scripts]# route add -host 20.0.0.10 dev lo:0
[root@slave01 network-scripts]# vim /etc/rc.local
## 配置永久添加路由
route add -host 20.0.0.10 dev lo:0

3.5.3、配置ARP内核响应参数防止更新VIP中的MAC地址,避免发生冲突
[root@slave01 network-scripts]# vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

[root@slave01 network-scripts]# sysctl -p
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
3.6、部署NFS存储服务器(NFS共享存储ip地址:20.0.0.230)
[root@master01 ~]# rpm -q rpcbind nfs-utils
## 检查是否有安装nfs
rpcbind-0.2.0-42.el7.x86_64
nfs-utils-1.3.0-0.48.el7.x86_64
[root@master01 ~]# systemctl start nfs
[root@master01 ~]# systemctl start rpcbind
##开启服务
[root@master01 ~]# systemctl enable nfs
## 设置开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@master01 ~]# systemctl enable rpcbind
[root@master01 ~]# mkdir /opt/web1 /opt/web2
## 创建web目录

该文详细介绍了如何搭建基于LVS-DR的负载均衡、Nginx与Tomcat的动静分离,以及MySQL集群的MHA高可用性。首先部署LVS-DR实现负载调度,接着配置Nginx服务器进行动静分离,然后安装并配置MySQL集群,包括主从复制和MHA管理器。最后通过Keepalived实现主备切换,确保系统的高可用性。
最低0.47元/天 解锁文章
、MySQL集群MHA高可用+一主两从+读写分离、NFS共享文件 项目&spm=1001.2101.3001.5002&articleId=130162450&d=1&t=3&u=6a73534d4d5b4bdb97ef80ae4d15aa3a)
784

被折叠的 条评论
为什么被折叠?



