IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 综合测验-设置用户通过高可用轮询访问服务器创建博客并实现数据实时同步 -> 正文阅读

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

一.实验环境

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

实验目的 通过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上

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即可

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-15 16:38:59  更:2021-07-15 16:40:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 16:19:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码