快速,持续,稳定,傻瓜式
支持Mysql,Sqlserver数据同步

docker搭建高可用与负载均衡二)nginx+apache+php+mysql主从复制+NFS+zabbix监控系统

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

网站建设是企业,组织,个人宣传,共享和交流的重要平台,尤其是在当今的信息时代,在互联网的影响下,所有行业都已实现数字化和在线化。网站的部署和发布是非常重要的部分,尤其是企业网站,随着企业的影响和业务规模的扩大,企业服务器需要承载的访问和负载量正在增加。已经提出了向企业提供网络服务的新标准。因此,为了使企业网络能够承载更多的访问和业务需求,我们需要构建一个Web集群以实现企业级Web集群的负载平衡和高可用性。在网站开发过程中,公司或个人通常不考虑从头开始开发。为了节省时间和经济成本,他们通常选择构建和部署网站的框架。在这个项目中,我选择了流行的国外网站框架-wordpress来安装和部署Web集群,使用nginx作为负载平衡器,配置双网站来承担网站负载,配置NFS共享,mysql主从复制和Zabbix监控系统。

WordPress是使用PHP语言开发的博客平台。用户可以在支持PHP和MySQL数据库的服务器上建立自己的网站。您还可以将WordPress用作内容管理系统(CMS)。

WordPress是一个个人博客系统,并逐渐演变为内容管理系统软件。它是使用PHP语言和MySQL数据库开发的。用户可以在支持PHP和MySQL数据库的服务器上使用其博客。

WordPress有许多由第三方开发的免费模板,并且安装方法简单易用。但是要制作自己的模板,您需要具备一些专业知识。例如,您必须至少了解标准通用标记语言下的HTML代码,CSS,PHP等应用程序。

WordPress正式支持中文版本,并且有由发烧友开发的第三方中文语言包,例如wopus中文语言包。 WordPress有成千上万的插件和无数主题模板样式。

当网站正式启动时,考虑到单个节点的服务器目前无法承受过载的HTTP请求,以便同时满足外部流量,以便于管理,提高可伸缩性和安全性,并减少企业支出,通常需要采用服务器部署站点配置负载平衡群集的方法来提高企业网站的网络服务能力。

当负载平衡的服务器节点越来越多时,网站的规模越来越大,负载平衡分配器承担的网络流量最大,并且它在整个集群中的重要性是自负的。显而易见,一旦节点出现故障甚至停机,整个集群将无法提供外部服务。因此,除了负载均衡之外,我们还将部署高可用性的负载均衡,即负载均衡器的活动和备用部署。

配置主机NFS文件共享,可以通过网络访问共享资源,节省服务器存储空间。同时,它可以促进文件的统一管理。

Web负载平衡和高可用性可确保Web软件的正常访问和运行,但不能保证数据库的安全性。数据对于网站来说非常重要。因此,基于对数据安全性的考虑,我们为mysql设置了主从复制,以增强数据库的安全性。

为了方便网站的运行和维护并监视整个集群,我们还额外设置了服务器以监视系统的运行状态。监视网站上每个服务器的操作非常方便,如果系统出现问题,您可以快速找到响应计划并减少企业的损失。

该项目专注于Web应用程序的部署和mysql数据库的主从部署,通过nginx负载平衡共享网络流量,以及使用zabbix进行网络监视。

实验环境是centos上的docker系统,该系统的构建如图所示:

描述

系统地址和软件环境如下:

容器操作系统(OS)IP地址安装软件

主机(docker)CentOS7 192.168.131.100 Docker

nginx1 CentOS7 172.18.0.11 nginx

Web CentOS7 172.18.0.111 Apache + PHP

web1 CentOS7 172.18.0.112 Apache + PHP

mysql-master CentOS7 172.18.0.201 Mysql

mysql-slave CentOS7 172.18.0.202 mysql

zabbix CentOS7 172.18.0.254 zabbix

网络172.18.0.0/16

在主机上安装docker。在本实验中,我使用了centOS7的Linux环境。

使用以下命令安装docker:

 

在该项目中,使用了六个容器,如下所示:

 

Nginx(引擎x)是高性能的HTTP和反向代理Web服务器,还提供IMAP/POP3/SMTP服务。它的特点是占用内存少,并发性强。 Nginx可以在大多数UnixLinux操作系统上进行编译和运行,并且具有Windows端口。

Nginx作为负载平衡服务:Nginx可以直接在内部为外部服务支持Rails和PHP程序,也可以作为HTTP代理服务支持外部服务。 Nginx用C编写。系统资源开销和CPU效率都比Perlbal好得多。

处理静态文件,索引文件和自动索引;打开文件描述符缓冲区。

无缓存的反向代理加速,简单的负载平衡和容错能力。

FastCGI,简单的负载平衡和容错能力。

模块化结构。包括gziping,字节范围,分块响应以及SSI过滤器和其他过滤器。如果FastCG或其他代理服务器在单个页面中处理多个SSI,则此过程可以并行运行,而无需彼此等待。

支持SSL和TLSSNI。

 

 

 

 

将网站的根目录配置为wordpress目录

 

在此处插入图片描述

将php升级到php7

检测现有已安装的php版本

 

删除原始的php并安装php7(wordpress5与php7兼容,但某些主题插件不兼容)

 

出现以下页面,指示Web服务器环境正常。出现下一页后,由于mysql和Web服务器在群集中分开,因此在这里我们首先暂停并配置mysql服务器,然后完成wordpes的安装。

  1. 安装和配置nfs

    #yum install nfs-utils//使用yum方法安装nfs

    #vim/etc/sysconfig/nfs

    #systemctl start rpcbind//启动rpcbind服务并检查监听端口

在此处插入图片描述

在此处插入图片描述

2.创建一个新的/var/www/html/wordpress/wp-includes目录作为共享目录,并将权限设置为777

在这里,我仅将wp-includes的核心文件(即wordpress)设置为nfs共享。可以根据相同的想法配置需要为nfs共享设置的其他目录。

3.编辑/etc/exports文件

 

重新启动nfs服务

3.4.2配置Web容器并将其挂在共享目录中

 

 

 

(1)授予wordpress软件服务器访问权限

 

(2)创建wordpress数据库

答:如果您在公共网络环境中工作并且服务器具有公共网络地址,则可以在此处直接创建wordpress数据库并通过网页进行安装。

 

在安装过程中将设置mysql服务器地址,后台登录帐户和密码,但是由于我在这里使用的docker内部环境,在安装过程中出现了一些问题,但是幸运的是,我找到了解决方案。解决过程如下:

1)服务器无法连接

因为在Web安装期间从Web端检测到服务器,但是通过主机访问服务器时无法正常连接到服务器,因此需要在Web服务器端执行某些操作。

A.将wp-config-sample.php文件复制到wp-config.php,并按如下所示编辑文件的内容:

 

B.刷新页面后,将设置一些选项,网站名称,字幕

C.最重要的一点是,您会发现网站的外观不存在(如下图所示)。这是因为在网站自行安装时,网站会自动添加解析的URL。如果过去通过nginx,它将自动填写http://APP/wordpress,需要修改数据库中的一些参数

3FxF

F

 

将具有管理员权限的用户添加到wordpress数据库

注意:在这种环境中,我使用docker环境。使用主机浏览时,无法使用Web界面正确安装wordpress。因此,如果您还遇到后台登录帐户无法登录的问题,则可以通过以下方法添加测试帐户以登录到网站后台

 

当然,直接导入已安装并设置mysql文件更为方便。

3.6 mysql主从复制

1.分别修改mysql-master和mysql-slave的/etc/my.cnf

在此处插入图片描述

在此处插入图片描述

2.在主节点上配置从节点帐户

mysql \>授予上的复制从属。 到rep @” 172.18.0.202″(由” 123″标识);

在此处插入图片描述

查看主节点信息

在此处插入图片描述

3.在从属节点上配置主节点信息

mysql \ gt;将MASTER更改为MASTER_HOST =’172.18.0.201’,MASTER_USER =’rep’,MASTER_PASSWORD =’123’,MASTER_LOG_FILE =’mysql-bin.000001’,MASTER_LOG_POS = 120;

mysql \ gt;启动奴隶;

mysql \ gt;显示奴隶状态

在此处插入图片描述

F

检查从节点上的数据库,可以看到它已经同步。

//配置镜像

 

 

//在zabbix_server.conf中编辑数据库配置

 

 

鉴于上述安装过程中的问题,建议在单个服务器上完成wordpress的安装,导出数据库,将已安装的wordpress容器提交为映像,然后创建一个新容器。复制导出的数据库文件,将其导入mysql-master,然后在mysql-master上配置Web服务器的权限。

在构建具有高可用性和负载平衡的Web群集的过程中,掌握原理并理解每个部分的功能非常重要。负载平衡用于共享网络流量,高可用性用于增强安全性和可靠性。数据库的主从复制配置可确保数据安全。 NFS可以提高服务器的利用率,也可以方便地进行资源管理。

Web集群的构建可以帮助我们更好地了解软件功能和设计模式。作为出色的Web框架软件,Wordpress对于学习其集群构建非常必要。

相关推荐

咨询软件
 
QQ在线咨询
售前咨询热线
QQ1922638