实现多机分布式部署Discuz 论坛
1.准备三台主机,分别安装 httpd+php*. mariadb*,nfs-untils*
2、三台主机全部都要关闭防火墙和selinux
3、NFS主机配置,创建共享目录,在目录内上传论坛压缩包,然后解压到当前目录
4.修改NFS 配置文件,允许所有客户端访问此共享目录,具备 rw权限。启动服务
5.Apache主机配置,挂载共享目录到/var/www/html,修改upload目录权限,复制目录内容到/var/www/html。启动httpd 服务
6.Mysql 主机配置,启动数据库,配置对应密码,登录开放远程访问权限,刷新权限
7.基于NGINX完成的负载均衡,访问NGINX主机IP 刷新可以查看到apache主页变更
8.在两个NGINX主机上安装keepalived,启动keepalived服务
配置yum源
VMware虚拟机配置本地YUM源
- 通过虚拟机配置,添加光盘镜像
- 在系统上确认光盘被识别,使用命令 lsblk 确认光驱sr0有大小
- 挂载光盘到指定目录 mount /dev/sr0 /mnt
- 确认挂载成功 df -hT 或者 lsblk 查看设备与挂载点是否对应
- 配置yum源
- 备份原有yum仓库配置 cp -rp /etc/yum.repos.d/ /
- 切换目录到/etc/yum.repos.d cd /etc/yum.repos.d/
- 清空原有yum源配置 rm -rf *
- 添加新的Yum配置文件 vi centos.repo
[源标识] 当前文件中源标识名称唯一
name=描述语
enabled=1 确认启动此仓库,0代表不启动
gpgcheck=0 是否仓库程序安装时,进行数字认证,0不认证
baseurl=file:///mnt 仓库位置 本地 file://绝对路径 网络 ftp:// http:// https:// mirrors://
保存退出
- 清空原有yum缓存,生成新缓存
清空:yum clean all
生成: yum repolist
NFS
NFS 采用服务器/客户端工作模式。
在NFS 服务器上将目录设置为输出目录(即共享目录)后,客户端就可以将这个目卖自己系统中的某个目录下。
结论:NFS 只能共享目录,若想共享某个文件需要将文件放到目录下,将目录设置为录。客户端使用挂载方式访问共享目录中的内容。
实现快速多台电脑配置yum源:一台机器配置后使用scp命令完成多台主机的传输
基于 ssh远程复制文件:scp 本地文件路径 root@目标主机IP:目录路径
[例如:scp /etc/yum.repos.d/centos.repo root@ip地址:/etc/yum.repos.
1.软件安装
基于 yum 安装: yum install -y nfs-utils*
2.启动软件
先启动守护进程: systemctl start rpcbind
再启动运行程序: systemctl start nfs
3.创建共享目录,修改配置文件
创建共享目录:mkdir /luntan
上传需要被共享的文件到这个目录中去
wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_UTF8.zip
修改配置文件:vi /etc/exports
文件内容:共享目录的绝对路径 客户端(权限)
例如: /luntan *(rw,no_root_squash)
安装NFS yum install -y install nfs
关闭防火墙, systemctl stop firewalld
selinux setenforce 0
先启动守护进程 systemctl start rpcbind
再启动运行程序 systemctl start nfs
上传文件 wget http://mirrors.aliyun.com/repo/Centos-7.repo
更换到/目录 cd /
创建文件夹/luntan mkdir /luntan
更换目录 /luntan cd /luntan
权限 Vi /etc/exports /luntan *(rw,no_root_squash)
4.切换到客户端主机上进行挂载挂载共享目录到指定挂载点:
mount -t 文件系统类型 服务端IP:共享目录绝对路径本机挂点
例如: mount -t nfs 服务端 IP:/luntan /var/www/html
常见错误:
(1)提示文件系统类型不存在。解决方式:yum install ynfs*
(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*
挂载共享目录到指定挂载点
Mount -t 文件系统类型 服务端IP:共享目录绝对路径 本地挂载点
【mount -t nfs ip:/luntan /var/www/html】
验证挂载成功 showmount -e 本机IP
安装unzip* yum install -y unzip*
切换目录 cd /var/www/html
解压 unzip D......[将NFS里面下载的Dis.......解 压到httpd里面
移动 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【配置数据库开启远程服务】
配置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 privilegeson ** to 'root'@'%' identified by '123456';
6. 刷新权限 flush privileges;
7.退出 quit
8.关闭主机防火墙 systemctl stop firewalld
9.关闭主机selinux setenfroce 0
基于NGINX完成的负载均衡
- 配置yum源
[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 网关
- 安装nginx
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
}
}
- 配置Nginx开启反向代理访问
/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主机IP 刷新可以查看到apache主页变更
7.在两个NGINX主机上安装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.100.200
}
}
辅调度器上要稍作修改:
将 router_id 1 改为 router_id 2
将 state MASTER 改为 state BACKUP
将 priority 100 改为 priority 99
其他不变
8.修改windows的hosts文件,添加一个新的域名
修改文件C:\Windows\System32\drivers\etc\hosts
在最后一行添加 IP 域名