基于NGINX实现负载均衡
1.准备四台主机,分别安装 httpd+php*. mariadb*,nfs-untils*,nginx,keepalived
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源
配置yum源
VMware虚拟机配置本地YUM源
2.在系统上确认光盘被识别,使用命令 lsblk 确认光驱sr0有大小
3.挂载光盘到指定目录 mount /dev/sr0 /mnt
4.确认挂载成功 df -hT 或者 lsblk 查看设备与挂载点是否对应
5。配置yum源
[源标识] 当前文件中源标识名称唯一
name=描述语
enabled=1 确认启动此仓库,0代表不启动
gpgcheck=0 是否仓库程序安装时,进行数字认证,0不认证
baseurl=file:///mnt 仓库位置 本地 file://绝对路径 网络 ftp:// http:// https:// mirrors://
保存退出
清空:yum clean all
生成: yum repolist
NFS
关闭防火墙, systemctl stop firewalld
关闭selinux setenforce 0
基于 yum 安装: yum install -y nfs-utils*
先启动守护进程: systemctl start rpcbind
再启动运行程序: systemctl start nfs
创建共享目录:mkdir /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)
Apache
关闭防火墙, systemctl stop firewalld
关闭selinux setenforce 0
配置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
常见错误:
(1)提示文件系统类型不存在。解决方式:yum install ynfs*
(2)提示挂载点目录路径或共享目录不存在错误。解决方式:确认本机挂载点正确,确认共享目录路径书写正确。
(3)提示Norouteto host。解决方式:关闭客户端服务器的防火墙和selinux
(4)提示拒绝被挂载。解决方式:服务端使用命令 exportfs +直看配置文件语法是否有误。
验证挂载成功
Showmount -e 本机IP地址
安装unzip* yum install -y unzip*
解压 unzip D......[将NFS里面下载的Dis.......解 压到httpd里面
例如: unzip D ........ -d /var/www/html
移动 mv /var/www/html/upload/* /var/www/html
切换目录 cd /var/www/html
修改权限 chmod -R 757 data config uc*
重新启动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 privileges on *.* to 'root'@'%' identified by '123456';
6. 刷新权限 flush privileges;
7.退出 quit
8.关闭主机防火墙 systemctl stop firewalld
9.关闭主机selinux setenfroce 0
基于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 网关
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主机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 域名