1.安装7台主机,配置主机名网络,关闭防火墙和selinux
2.两台nginx主机,配置网络源安装Nginx 和 keeplived(热备)
3.两台apache主机,配置本地源安装,httpd和php php-mysql
4.两台mysql主机,配置raid5,创建目录并挂载到/var/lib/mysql 再安装mariadb*
5.一台nfs主机,配置raid5,创建并挂载到/luntan目录中,安装nfs-utils*,配置软件
(可省略) /打开网卡配置文件
Vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改参数
BOOTPROTO=static
ONBOOT=yes
IPADDR=IP地址
NETMASK=对应子网掩码
GATEWAY=对应网关
注:如果是在vmware虚拟机上配置静态IP,如果主机网络类型是仅主机模式或者NAT模式请注意查看虚拟网络编辑器中对应网段与网关。
原因:当前的虚拟网络编辑器就是我们的模拟路由器,所以网段必须统一。
NFS
安装mdadm: yum install -y mdadm
创建raid5: mdadm -C /dev/md5 -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}
格式化: mkfs -t ext4 /dev/md5
挂载: mount /dev/md5 /luntan
安装软件: yum install -y nfs-utils*
安装NFS yum install -y install nfs
关闭防火墙, systemctl stop firewalld
selinux setenforce 0
先启动守护进程 systemctl start rpcbind
再启动运行程序 systemctl start nfs
更换到/目录 cd /
创建创建共享目录/luntan mkdir /luntan
更换目录 /luntan cd /luntan
上传需要被共享的文件到这个目录中去
wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_UTF8.zip
修改配置文件:vi /etc/exports
文件内容:共享目录的绝对路径 客户端(权限)
例如: /luntan *(rw,no_root_squash)
4.切换到客户端主机上进行挂载挂载共享目录到指定挂载点:
mount -t 文件系统类型 服务端IP:共享目录绝对路径本机挂点
例如: mount -t nfs 服务端 IP:/luntan /var/www/html
常见错误:
(1)提示文件系统类型不存在。解决方式:yum install -y nfs*
(2)提示挂载点目录路径或共享目录不存在错误。解决方式:确认本机挂载点正确,确认共享目录路径书写正确。
(3)提示Norouteto host。解决方式:关闭客户端服务器的防火墙和selinux
(4)提示拒绝被挂载。解决方式:服务端使用命令 exportfs +直看配置文件语法是否有误。
5.验证挂载成功
Showmount -e 本机IP地址
Apache
配置yum源 复制yum 在NFS上输入 scp /本地文件路径 root@目标主机IP:目标路径
安装NFS yum install -y nfs*
安装httpd* yum install -y httpd*
安装php* yum install -y php*
4.切换到客户端主机上进行挂载挂载共享目录到指定挂载点:
mount -t 文件系统类型 服务端IP:共享目录绝对路径本机挂点
例如: mount -t nfs 服务端IP:/luntan /var/www/html
常见错误:
(1)提示文件系统类型不存在。解决方式:yum install -y nfs*
(2)提示挂载点目录路径或共享目录不存在错误。解决方式:确认本机挂载点正确,确认共享目录路径书写正确。
(3)提示Norouteto host。解决方式:关闭客户端服务器的防火墙和selinux
(4)提示拒绝被挂载。解决方式:服务端使用命令 exportfs +直看配置文件语法是否有误。
5.验证挂载成功
Showmount -e 本机IP地址
下载wget 安装 wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_UTF8.zip
安装unzip*: yum install -y unzip*
切换目录: cd /var/www/html
解压: unzip D......[将NFS里面下载的Dis.......解 压到httpd里面
Unzip Discuz_X3.2_SC_UTF8\(1\).zip -d /var/www/html/
移动: mv /var/www/html/upload/* /var/www/html
修改权限: chmod -R 757 data config uc*
关闭防火墙: systemctl stop firewalld
关闭selinux: setenforce 0
重新启动httpd; systemctl restart httpd
MySQL【配置数据库开启远程服务】
下载mdadm:yum install -y mdadm
创建raid5: mdadm -C /dev/md5 -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}
格式化: mkfs -t ext4 /dev/md5
创建挂载点: mkdir /var/lib/md5
挂载: mount /dev/md5 /var/lib/mysql/
配置yum源 复制yum 在NFS上输入 scp /本地文件路径 root@目标主机IP;目标路径
配置数据库开启远程管理
1.安装数据库 yum install -y mariadb*
2.启动数据库 systemctl start mariadb
3.配置密码 mysql_secure_installation
4.本机登录验证 mysql -uroot -p
5.授权 grant all privileges on *.* to 'root'@'%' identified by '123456';
6. 刷新权限 flush privileges;
7.退出 quit
8.关闭主机防火墙 systemctl stop firewalld
9.关闭主机selinux setenfroce 0
MySQL主从复制
2.2.1 主库配置
# vim /etc/my.cnf
[mysqld]
....
log-bin=mysql-bin #日志文件名称mysql-bin.00001
server-id=1 #0--65535范围
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
# 修改完成之后需要重启Mysql服务
systemctl restart mariadb
# 授权远程用户
mysql> CREATE USER 'shz'@'%' IDENTIFIED BY '123456';
mysql>grant all privileges on *.* to 'shz'@'%' identified by '123456';
mysql> flush privileges;
#验证成功,切换到从机
mysql -h主机IP -ushz -p123456
登录成功证明主库用户授权成功,网络互通,防火墙selinux关闭生效
2.从库配置
# vim /etc/my.cnf
[mysqld]
...
server-id=3
relay-log=mysql-relay-bin
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
replicate-ignore-db=sys
重启服务 systemctl restart mariadb
2.2.3 在主库上导出所有数据库
#在主机与从机上创建master1数据库
MASTER > create database master1;
SLAVE > create database master1;
# 获取库信息
MASTER> show master status; 查询Log_file log_pos
#配置从库连接到主库,MASTER_LOG_FILE与MASTER_LOG_POS的值由主库信息获得
mysql> CHANGE MASTER TO MASTER_HOST='192.168.122.148', MASTER_USER='shz', MASTER_PASSWORD='123456', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=670, MASTER_CONNECT_RETRY=10;
#开启复制
start slave;
#查看slave状态
show slave status \G;
#主要查看内容:
Slave_IO_Running,Slave_SQL_Running的状态要为Yes。
nginx
基于NGINX完成的负载均衡
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
2.修改/etc/resolv.conf
nameserver 网关
wget http://mirrors.aliyun.com/repo/Centos-7.repo
yum install -y nginx
systemctl start nginx
注:nginx使用tcp80端口,请注意与其他web服务冲突、
vi /etc/nginx/nginx.conf
http {
...
upstream backend {
server 192.168.100.102:80; apache1主机IP
server 192.168.100.103:80; apache2主机IP
}
}
/etc/nginx/conf.d/default.conf
server {
...
location / {
proxy_pass http://backend;
proxy_redirect default;
#设置代理
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
在两个NGINX主机上安装keepalived
Yum -y install keepalived
修改配置/etc/keepalived/keepalived.conf
清空内容后,添加以下内容
global_defs {
router_id 1
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 1
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.150.200
}
}
辅调度器上要稍作修改:
将 router_id 1 改为 router_id 2
将 state MASTER 改为 state BACKUP
将 priority 100 改为 priority 99
其他不变