温馨提示:
实验前需要关闭防火墙和selinux:
systemctl stop firewalld
vi /etc/selinux/config
将SELINUX=enforcing
改为SELINUX=disabled
实验环境:
#全部机器都为Centos 7
IP:
#客户端IP:10.0.0.8 #主DNS:10.0.0.18
#从DNS:10.0.0.28 #防火墙:10.0.0.38
#web1:10.0.0.48 #web2:10.0.0.58
#主MySQL:10.0.0.68 #从MySQL:10.0.0.78
#NFS共享:10.0.0.88 #backup:10.0.0.98
#LVS:10.0.0.108
架构图如下:
第一步:实现web服务 #本文使用WordPress做web界面
1.安装apache和php,(WordPress不支持php版本低于7.4,可以选择安装remi提供更高的版本)
yum -y install http://mirror.digitalnova.at/remi/enterprise/remi-release-7.rpm
yum -y install httpd php74-php php74-php-mysqlnd php74-php-gd
2.修改配置文件
修改php的配置文件
vim /etc/php/php.ini
post_max_size = 80M
upload_max_filesize = 20M修改apache的配置文件,让php可以解析界面文件
vim /etc/httpd/conf/httpd.conf
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>3.重新启动服务
systemctl restart httpd
4.下载WordPress,解压后移到apache的web界面文件下,为目录设置权限
wget https://cn.wordpress.org/latest-zh_CN.tar.gz
tar xf latest-zh_CN.tar.gz -C /opt/
mv /opt/wordpress/* /var/www/html/
chown -R apache.apache /var/www/html
第二步:实现MySQL的主从复制
主节点:
1.安装MySQL
yum install -y mysql mysql-server #本文MySQL版本为8.0
2.修改MySQL的配置文件
vim /etc/my.cnf.d/mysql-server.cnf
[mysqld]
server-id=8
log-bin
3.重新启动MySQL服务
systemctl restart mysqld
4.修改密码登录密码
mysql>alter user 'root'@'localhost' identified with mysql_native_password by '你的密码';
5.创建复制用户并授权,然后刷新下权限
mysql>create user '用户名'@'10.0.0.%' identified by '用户密码';
mysql> grant replication slave on *.* to '用户名'@'10.0.0.%';mysql>flush privileges;
6.查询Master的状态,并记录下File和Position的值
show master status;
从节点:
1.安装MySQL
yum install -y mysql mysql-server
2.修改MySQL的配置文件
vim /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
server-id=18
3.重新启动MySQL服务
systemctl restart mysqld
4.配置需要复制的主机
CHANGE MASTER TO
MASTER_HOST='主节点的IP地址',
MASTER_USER='主节点的用户名',
MASTER_PASSWORD='主节点的用户密码',
MASTER_LOG_FILE='上面记录下的File值',
MASTER_LOG_POS=上面记录下的Position值;5启动slave同步
START SLAVE;
6.查看同步状态
SHOW SLAVE STATUS\G;
#这两个值为yes即同步成功:
Slave_IO_Running: Yes Slave_SQL_Running: Yes
第三步:授权MySQL用户,web界面的数据就可以存入数据库中
mysql> create database '数据库名';
mysql> create user 用户名@'10.0.0.%' identified by '用户密码';
mysql> grant all on '数据库名'.* to '用户名'@'10.0.0.%';
第四步:实现NFS共享
服务端:
1.安装并启动NFS服务,创建需要共享的目录,修改目录的属主
yum -y install nfs-utils
systemctl start nfs-server
mkdir '/data/test'
chown -R zhang. /data/test/
2.配置exports共享文件
vim /etc/exports
/data/test/ * (rw)
(共享的目录)(主机格式)(相关权限和选项)
#主机格式:
* 表示共享所有客户端
10.0.0.0/24 表示共享此网段
10.0.0.100 表示共享此ip的主机
#相关权限和选项:
默认选项:(ro,sync,root_squash,no_all_squash)
ro,rw 只读和读写
async 异步,数据变化后不立即写磁盘,先写入到缓冲区中,过一段时间再写入磁盘,性能高,安全性低
sync(1.0.0后为默认)同步,数据在请求时立即写入共享存储磁盘,性能低,安全性高 root_squash (默认)远程root映射为nfsnobody,UID为65534,CentOS8 为nobody,CentOS 7以前的版本为nfsnobody
no_root_squash 远程root映射成NFS服务器的root用户
all_squash 所有远程用户(包括root)都变成nfsnobody,CentOS8 为nobody
no_all_squash (默认)保留共享文件的UID和GID anonuid和anongid 指明匿名用户映射为特定用户UID和组GID,而非nobody,可配合all_squash使 用,注意:目录需要给此用户权限,否则无法访问
anonuid和anongid 指明匿名用户映射为特定用户UID和组GID,而非nobody,可配合all_squash使 用,注意:目录需要给此用户权限,否则无法访问
3.生效配置文件
exports -r
4.查看共享目录
exports -v
客户端:
1.安装nfs服务,创建被共享的目录
yum -y install nfs-utils
mkdir '/data/test'
2.配置挂载文件
vim /etc/fstab
10.0.0.105:/data/test /data/test nfs _netdev 0 0
#nfs相关挂载参数:
fg (默认)前台挂载
bg 后台挂载
hard (默认)持续请求
soft 非持续请求
intr 和hard配合,请求可中断
rsize 和wsize 一次读和写数据最大字节数,rsize=32768
_netdev 无网络服务时不挂载NFS资源
vers 指定版本,客户端centos8默认4.2 ,centos7默认4.1 centos6默认4.0
3.将共享的目录挂载到被共享的目录下
mount -a