通过keepalived(LNMP)高可用架构搭建wordpress平台

  • 图形化详细展示:
    在这里插入图片描述
    在这里插入图片描述
    实验目的:
    通过配置LVS集群实现高可用,防止一台主机崩溃后导致网页不可用。

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主机配置:

  1. 装包
 yum  -y  install keepalived.x86_64			//安装高可用集群软件包
 yum  -y  install ipvsadm					//安装集群管理软件包
  1. 配置

以下为需要修改的配置文件:

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
  }
 }
}

配置完毕保存退出。

  1. 起服务
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 root@192.168.4.6:/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   					  //安装支持加密网站的依赖包
  • 使用gcc编译工具进行编译(源码编译安装)
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)

  • web1:(接下来为web1上的操作)
    配置虚拟VIP(lo:0网卡):创建虚拟网卡lo:0
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										//刷新配置文件

显示此为正确:
在这里插入图片描述

  • 远程拷贝虚拟网卡lo:配置到web2主机
scp    /etc/sysconfig/network-scripts/ifcfg-lo:0    root@192.168.4.200:/etc/sysconfig/network-scripts/					//远程拷贝虚拟网卡配置,根据提示操作
scp  /etc/sysctl.conf   root@192.168.4.200:/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主机平台部署(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主机后再次查看网页是否可以出现
如果可以,说明实验成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值