LNPM数据库拆分
第1章 环境搭建准备
| 主机名 | IP地址 | 安装服务 |
|---|---|---|
| web01 | 172.16.1.7 | nginx+php |
| db01 | 172.16.1.51 | mysql |
第2章 数据库拆分详细步骤
2.1 web01上备份数据库并拷贝到db01上
备份 web01 上的数据库
1 | [root@web01 ~]# mysqldump -uroot -p'oldboy' -A --single-transaction > /tmp/web01.sql |
将 web01 上备份的数据库拷贝至 db01 服务器上
1 | [root@web01 ~]# scp /tmp/web01.sql 172.16.1.51:/tmp |
2.2 db01服务器恢复数据库
安装数据库,并启动
1 | [root@db01 ~]# yum install mariadb mariadb-server -y |
将web01.sql导入到db01的数据库
1 | [root@db01 ~]# mysql -uroot -p'oldboy' < /tmp/web01.sql |
2.3 db01数据库进行授权
在新数据库上授权, 允许所有网段, 通过 all 账户连接并操作该数据库
授权所有权限 grant all privileges
授权所有库所有表 .
将授权赋予给哪个用户,这个用户只能通过哪个网段过来(%所有) ‘all’@’%’
授权该用户登录的密码 identified by
1 | [root@db01-51 ~]# mysql -uroot -p'oldboy' |
2.4 测试使用IP地址能不能登陆
1 | [root@web01 ~]# mysql -uall -poldboy -h 172.16.1.51 |
2.5 web01修改PHP代码连接到新数据库
修改wordpress
1 | [root@web01 ~]# cd /code/wordpress/ |
修改wecenter
1 | [root@web01 ~]# cd /code/zh/ |
2.6 停止web01上的数据库,测试网页是否正常
1 | [root@web01 /code/zh]# systemctl stop mariadb.service |
此时如果打开网页没有问题则表明数据库拆分完成


第3章 拓展WEB服务器
3.1 为什么要拓展多台web节点
单台 web 服务器能抗住的访问量是有限的,配置多台 web 服务器能提升更高的访问速度
3.2 拓展多台web解决了什么问题
1.单台 web 节点如果故障,会导致业务 down 机
2.多台 web 节点能保证业务的持续稳定,扩展性高
3.多台 web 节点能有效的提升用户访问网站的速度
3.3 多台web服务器架构组成

3.4 多台web服务器思路
1.可以使用ansible批量部署多台web服务器
2.配置内网私有yum仓库
3 按照web01的步骤安装好nginx和php,然后远程拷贝代码到新机器
3.5 部署步骤
3.5.1 web02 创建用户名密码
1 | [root@web02-8 ~]# groupadd www -g 666 |
2.5.2 web02安装Nginx+PHP
可以直接从web01上拷贝yum源到本机yum目录
1 | [root@web02-8 ~]# scp -rp root@172.16.1.7:/etc/yum.repos.d/* /etc/yum.repos.d/ |
3.2.3 拷贝web01的nginx和php配置文件到web02
1 | [root@web02-8 ~]# scp -rp root@172.16.1.7:/etc/nginx /etc/ |
3.2.4 拷贝代码目录到web02
1 | [root@web01 ~]# tar zcf code.tar.gz /code |
3.2.5 web02上将代码解压到相应目录
1 | [root@web02-8 ~]# tar xf /tmp/code.tar.gz -C / |
3.2.6 web02上启动nginx和php-fpm并加入开机自启动
1 | [root@web02-8 ~]# systemctl start nginx php-fpm.service |
3.2.7 web访问测试
修改windows的hosts为web02的地址,然后浏览器访问测试


第4章 将静态资源挂载到共享存储
4.1 为什么要拆分静态资源到独立服务器
当后端的 web 节点出现多台时,会导致用户上传的图片、视频附件等内容仅上传至一台 web 服务器,那么其他的web 服务器则无法访问到该图片
4.2 新增一台nfs存储解决了什么问题
1.保证了多台 web 节点静态资源一致。
2.有效节省多台 web 节点的存储空间。
3.统一管理静态资源,便于后期推送至 CDN 进行静态资源加速
4.3 多台web节点架构环境准备

| 服务器 | IP地址 | 安装服务 |
|---|---|---|
| web01 | 172.16.1.7 | Nginx+PHP |
| web02 | 172.16.1.8 | Nginx+PHP |
| db01 | 172.16.1.51 | MySQL |
| nfs | 172.16.1.31 | NFS |
4.4 NFS服务器端配置
4.4.1安装配置NFS
1 | [root@nfs ~]# yum -y install nfs-utils |
4.4.2 创建共享目录并进行授权
1 | [root@nfs ~]# mkdir /data/{blog,zh} |
4.4.3 启动nfs服务并加入开机自启
1 | [root@nfs ~]# systemctl start nfs-server |
4.5 web01端操作步骤如下
4.5.1 web01安装nfs
1 | [root@web01 ~]# yum -y install nfs-utils rpcbind |
4.5.2 查找Wordpress 静态资源存放的位置
在wordpress的文章里添加一张图片,然后查看图片URL资源

或者
复制图片地址打开,查看静态资源存放路径

4.5.3 备份web01服务器上Wordpress 的静态资源
1 | [root@web01 ~]# cd /code/wordpress/wp-content |
4.5.4 备份web01服务器上zh的静态资源
复制图片地址,找到静态资源存放路径

备份静态资源
1 | [root@web01 ~]# cd /code/zh |
4.5.5 web01客户端执行挂载操作
1 | [root@web01 ~]# mount -t nfs 172.16.1.31:/data/blog/ /code/wordpress/wp-content/uploads |
4.5.6 将挂载信息加入开机自启
1 | [root@web01 ~]# tail -2 /etc/rc.local |
4.6 web02端操作与web01一样
安装配置NFS
1 | [root@web02-8 ~]# yum -y install rpcbind nfs-utils |
备份web02服务器上Wordpress 的静态资源
1 | [root@web02-8 /code/wordpress/wp-content]# cp -a uploads uploads.bak |
web02客户端执行挂载操作
1 | [root@web02-8 ~]# mount -t nfs 172.16.1.31:/data/blog/ /code/wordpress/wp-content/uploads |
拷贝备份的静态资源数据到挂载点目录下
1 | [root@web02-8 ~]# cp -rp /code/wordpress/wp-content/uploads.bak/* /code/wordpress/wp-content/uploads/ |
将挂载信息加入开机自启
1 | [root@web02-8 ~]# tail -2 /etc/rc.local |



