综合测验-设置用户通过高可用轮询访问服务器创建博客并实现数据实时同步

一.实验环境

在这里插入图片描述
二.实验目的

实验目的 通过www.magedu.org访问个人站点
本机的hosts(windows环境)添加解析到vip
通过haproxy实现反向代理
要求 两台nginx+php的web环境 实现站点高可用
任何一台宕机不影响访问
nginx要相同版本 普通用户启动
博客要正常上传,并且在两个web读取 共享基于共享存储NFS实现
对nfs实现实时跨主机数据同步备份
部署数据库主从
**言简意赅的说:**就是客户端通过本机设置的vip,通过haproxy实现反向代理 轮询访问web1和2 ,创建一个博客账号,并上传图片,图片要在两台web主机读取,并且实时备份在nfs1和2服务器 ,同时修改的数据要存放在mysql两台主从服务器里

三.部署步骤

1.配置主从

mysql安装可以用编译,也可以用yum 版本一致就可以,我这里用的是yum安装

yum -y install mysql-server ;systemctl enable --now mysqld ; systemctl start mysqld

https://blog.csdn.net/Lcongming/article/details/117090768 (详细配置主从步骤)
由于后面要搭建博客,所以这里我们要在10.0.0.8上先创建一个WordPress的账号并授权;
步骤如下图
在这里插入图片描述
在slave验证

mysql -uwordpress -p123456 -h10.0.0.8

在这里插入图片描述
2.实现NFS实时同步

我采用的是基于远程shell 实现 sersync
在47和57两台机器开启了ssh免密登录( https://blog.csdn.net/Lcongming/article/details/117405991 免密登录设置)
我们现在10.0.0.5710.0.0.57NFS2上操作
安装并且启动rsync :

yum -y install rsync ; systemctl enable --now rysncd ; systemctl start rsyncd 

修改配置文件;vim /etc/rsyncd.conf 在最后添加

uid = root
gid = root
max connections = 0
ignore errors
exclude = lost+found/
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
reverse lookup = no
[backup]
path = /data/backup/
comment = backup dir
read only = no

再接着建立backup

mkdir /data/backup/

由于用户和组都是root 所以不需要改权限 再重启一下服务;systemctl restart rsyncd

而在NFS1安装了sersync 和nfs-utils
安装的大致步骤如下
将安装包上传
将下载好的软件上传后,解压;tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
拷贝至相应的目录,设置PATH变量

cp -a GNU-Linux-x86 /usr/local/sersync
echo 'PATH=/usr/local/sersync:$PATH' > /etc/profile.d/sersync.sh
source /etc/profile.d/sersync.sh

#sersync目录只有两个文件:一个是二进制程序文件,一个是xml格式的配置文件
在这里插入图片描述
#备份sersync配置文件

cp /usr/local/sersync/confxml.xml{,.bak}

#修改sersync配置文件

vim /usr/local/sersync/confxml.xml

(说明图中1234是常规设置,由于使用了基于shell远程实现sersync,开启了ssh所以④设置false 就是不需要账号密码,而⑤开启了ssh)
在这里插入图片描述
然后执行

sersync2 -dro /usr/local/sersync/confxml.xml 

(以后台方式运行同步,这步不执行,备用服务器上数据无法同步)

3.搭建Keepalive高可用并配置haproxy
在这里插入图片描述

10.0.0.7 kp1
10.0.0.17 kp2
安装的软件 keepalived和haproxy
安装后 分别要 设置开机启动

systemctl enable --now keepalived.service
systemctl enable --now haproxy.service

搭建keepalived**实现单主 (步骤可以参考:https://blog.csdn.net/Lcongming/article/details/118103893)
以下作参考;
kp1 /etc/keepalived/keepalived.conf
在这里插入图片描述

/etc/haproxy/haproxy.conf  

(说明有简化配置 和frontend+backend 两种方式,这里用的 是简化配置)
在这里插入图片描述
kp2 /etc/keepalived/keepalived.conf
在这里插入图片描述
/etc/haproxy/haproxy.conf
在这里插入图片描述
在两个ka1和ka2两个节点启用内核参数

vim /etc/sysctl.conf
net.ipv4.ip_nonlocal_bind = 1  

再执行sysctl -p
抓包观察

tcpdump -i eth0 -nn host 224.0.100.100
在这里插入图片描述
(说明,这里看需求,目前实验环境、单主、双主都是可以的)

5.搭建WordPress并挂载

安装的软件 nginx php-fpm nfs-utils
在这里插入图片描述
说明一下,除了nginx和php-fpm要安装之外,nfs-untils也要安装,因为涉及挂载
https://blog.csdn.net/Lcongming/article/details/118046181 安装php-fpm参考

接着执行挂载
分别将图中1机器2机器 和3进行挂载
在这里插入图片描述
在web1和2上
https://blog.csdn.net/Lcongming/article/details/118046181 (部署WordPress参考)

mkdir -p /data/nginx/wordpress

这个时候 nfs服务一定要启动,执行 systemctl start nfs

mount 10.0.0.47:/data/vmdata/wordpress /data/nginx/wordpress 
chown -r nginx.nginx wordpress

查看挂载结果
在这里插入图片描述
这个时候,已经实现了web1 web2 nfs1 nfs2上数据同步
目的是后续使1机器和2机器上的网页,php等文件实时同步到NFS服务器中,而数据则存放在主从数据库
补充 如果要机器重启后挂载还在,设置永久挂载就好了
vim /etc/fstab
在这里插入图片描述
在这里插入图片描述

6.设置hosts并设置博客
在本地windows下设置
在这里插入图片描述
访问域名www.magedu.org
在这里插入图片描述
设置完成后,登录微博发表图片;
在这里插入图片描述
当web2故障的时候
在这里插入图片描述
查看网页访问依旧正常
在这里插入图片描述

7.查看数据是否同步存储
这是在nfs1里的对应数据
在这里插入图片描述
下载后就是这个图片
在这里插入图片描述
这是在nfs2里查看到的
在这里插入图片描述
这是在web1中查看到的
在这里插入图片描述
这是在web2中查看到的
在这里插入图片描述

8.报错的处理
上传图片过程中提示报错无法建立目录wp-content/uploads/2021/07。有没有上级目录的写权限?
在master下mysql里操作
update wp_options set option_value = “wp-content/uploads” where option_name = “upload_path”;
将WordPress下将wp-content文件夹的读写权限更改为777即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值