PS: 本机实验平台为Centos7.5平台,为防止干扰,请在进行实验前关闭所有防火墙和SELinux.
各主机ip配置:
LVS_1:192.168.4.5
LVS_2:192.168.4.6
web1:192.168.4.100
web2:192.168.4.200
虚拟调度VIP:192.168.4.15
NFS:192.168.4.30
mariadb(database数据库):192.168.4.7
此实验所需的部分软件包用途为:
Nginx:用于实现网页显示(可以理解为功能类似于http)
NFS:nfs-utils:用于共享本机文件到网络中,如果客户机需要使用文件可以通过挂载的方式进行使用
wordpress:提供网站后台管理,则不需要在需要修改页面的时候再进入配置文件进行修改
keepalived:实现高可用集群架构
整理思路:
LVS_1,LVS_2:部署keepalived高可用集群架构
web1,web2:配置虚拟IP,部署Nginx(页面),nfs-utils(共享软件)
NFS:部署nfs-utils(共享软件)
mariadb:部署mariadb(数据库)
以下为实际操作:(请注意分清在哪台机器上进行的配置请关闭所有机器防火墙和SElinux!!!)
LVS_1主机配置:
yum -y install keepalived.x86_64 //安装高可用集群软件包
yum -y install ipvsadm //安装集群管理软件包
以下为需要修改的配置文件:
vim /etc/keepalived/keepalived.conf //配置数据
global_defs {
router_id LVS_1 //主机ID名称
vrrp_iptables //关闭防火墙配置
}
vrrp_instance VI_1 {
state MASTER //服务器状态
interface ens33 //网卡选择
virtual_router_id 51 //配置id号
priority 100 //优先级
virtual_ipaddress {
192.168.4.15 //服务器虚拟ip地址
}
}
virtual_server 192.168.4.15 80 { //虚拟服务器集群
delay_loop 6
lb_algo rr //LVS算法
lb_kind DR //LVS模式
#persistence_timeout 50 //在一段时间内指定访问同一主机
protocol TCP //网络模式
real_server 192.168.4.100 80 { //真实服务器
weight 1 //权重
TCP_CHECK { //done机检测(健康检查)
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.4.200 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
配置完毕保存退出。
systemctl restart keepalived.service //刷新服务
ipvsadm -Ln //查看集群
进入LVS_2主机:
yum -y install keepalived.x86_64 //安装高可用集群软件包
yum -y install ipvsadm //安装集群管理软件包
进入LVS_1主机:
scp /etc/keepalived/keepalived.conf [email protected]:/etc/keepalived/
输入yes, 然后 输入密码, //此命令是远程进行配置文件拷贝
进入LVS_2主机:
vim /etc/keepalived/keepalived.conf //配置数据
修改这几项:
global_defs {
router_id LVS_2 //改为LVS_2
}
vrrp_instance VI_1 {
state BACKUP //改为备份调度服务器
priority 50 //优先级设置为50
}
保存退出。
systemctl restart keepalived.service //重启服务
ipvsadm -Ln //查看集群
web1主机配置:
上传lnmp_soft.tar.gz软件包到web1
NGINX部署
创建存放路径
mkdir /lnmp //创建放置lnmp软件包(可以获取nginx软件)的目录
tar -xf lnmp_soft.tar.gz -C /lnmp/ //解压到/lnmp目录-C选项为制定解压目录
tar -xf /lnmp/lnmp_soft/nginx-1.17.6.tar.gz -C /lnmp/lnmp_soft/ //解压nginx软件包
安装前置编译文件
yum -y install gcc //安装gcc
yum -y install pcre-devel //安装支持正则的依赖包
yum -y install openssl-devel //安装支持加密网站的依赖包
cd /lnmp/lnmp_soft/nginx-1.17.6/ //进入刚刚解压nginx的文件夹进行源码编译
./configure
make
make install
此三步为源码编译安装(最后两条也可以通过:# make && make install 命令替代)
(为了使Nginx支持.php网页文件,以及实现动态页面)
vim /usr/local/nginx/conf/nginx.conf //改配置
以下为修改的位置:
可通过vim命令模式下的(:set nu)显示行号(行数仅供参考,以实际为准)
43 location / {
44 root html;
45 index index.php index.html index.htm;
46 } ↑↑↑↑---->添加此项
此65-71行需要解除注释(但是69行例外):
65 location ~ \.php$ {
66 root html;
67 fastcgi_pass 127.0.0.1:9000;
68 fastcgi_index index.php;
69 #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; //注释不解除
70 include fastcgi.conf; //需修改(改为.conf)
71 }
/usr/local/nginx/sbin/nginx //启动NGINX
cd //返回到初始目录
yum -y install php php-fpm php-mysql //安装支持PHP页面软件
systemctl start php-fpm //启动php
检查端口:
ss -nutlp | grep :80 //Nginx端口
ss -nutlp | grep :9000 //php-fpm数据库动态页面
web2:(也重复做以上在web1做的配置,即:安装Nginx,安装php)
cp /etc/sysconfig/network-scripts/ifcfg-lo{,:0} //拷贝网卡模板
vim /etc/sysconfig/network-scripts/ifcfg-lo:0 //编辑VIP
systemctl restart network //刷新网卡
ifconfig //查看虚拟VIP是否配置完成
关闭地址回应,防止地址冲突:
vim /etc/sysctl.conf //防止地址冲突配置文件
sysctl -p //刷新配置文件
scp /etc/sysconfig/network-scripts/ifcfg-lo:0 [email protected]:/etc/sysconfig/network-scripts/ //远程拷贝虚拟网卡配置,根据提示操作
scp /etc/sysctl.conf [email protected]:/etc/ //远程拷贝防止地址冲突配置文件,根据提示操作
web2主机操作:
systemctl restart network //刷新网卡
ifconfig //查看虚拟VIP是否配置完成
sysctl -p //刷新配置文件
mariadb主机操作:
配置数据库
yum -y install mariadb mariadb-server mariadb-devel //数据库软件
systemctl start mariadb //启动mariadb
检查端口:
ss -nutlp | grep :3306 //数据库mariadb
配置数据库:
mysql //进入数据库
输入:
MariaDB [(none)]> create database wordpress character set utf8mb4; //创建一个数据库(wordpress),支持中文显示(set utf8mb4)
MariaDB [(none)]> grant all on wordpress.* to wordpress@'%' identified by 'wordpress'; //wordpress 用户可以用wordpress这个密码登陆这个数据库,'%'(所有)ip都可以正常登陆
MariaDB [(none)]> select host,user,password from mysql.user; //查看用户信息
user文件内是否储存下了用户信息:(最后密码标识为wordpress加密显示的,如密码为别的,会显示不同)
MariaDB [(none)]> flush privileges; //刷新列表
MariaDB [(none)]> exit //保存退出(不要直接ctrl+c退出)
NFS主机平台部署(nfs-utils软件包)服务
安装共享软件(nfs-utils)
yum -y install nfs-utils
vim /etc/exports
写入:
/public 192.168.4.0/24(rw,no_root_squash) //配置共享目录,并将所有访问人员以root身份访问
刷新服务
systemctl restart nfs-server //重启服务.
mkdir /public //创建共享目录
systemctl restart nfs-server //重启服务
上传wordpress软件包到NFS
解压添加共享文件(wordpress)到共享目录(public)
yum -y install unzip //安装支持解压.zip文件的软件
unzip wordpress-5.0.3-zh_CN.zip //进行解压到当前目录
cd wordpress/ //进入解压下来的软件目录
cp -r * /public/ //拷贝当前目录的所有文件到共享文件夹内
systemctl restart nfs-server //重启nfs-server服务
web1,web2主机平台部署NFS-server服务进行接收网络共享文件
(以下操作在web1,web2上均操作一遍)
安装共享软件(nfs-utils)
yum -y install nfs-utils //安装nfs-utils软件包
systemctl restart nfs-server //重启nfs-server服务
由于wordpress会默认以apache身份访问文件,所以需要将共享来的wordpress文件的所有者以及所属组改变为apache(使用chown修改所有者,所属组)
mount 192.168.4.30:/public/ /usr/local/nginx/html/ //将共享目录挂载下来使用
chown -R apache.apache /usr/local/nginx/html/ //将(/usr/local/nginx/html/)下的所有文件以递归(-R)方式修改所有者
ls -al /usr/local/nginx/html/ //检查所有者和所属组,设置为apache
接下来进行页面配置验证:
确保所有机器防火墙以及SELINUX已经关闭!
使用浏览器访问此页面(推荐使用firefox浏览器)
1.关掉LVS_1的主机后再次查看网页是否可以出现
2.关掉web1主机后再次查看网页是否可以出现
如果可以,说明实验成功