分离mysql和存储实现双web负载均衡

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

此篇博文仅限涉及web服务器部分,至于负载均衡的实现可以按照需求来做,可以是基于DNS解析的负载均衡,也可以用lvs或者专用的负载均衡器(如F5或randware)

这是一个比较简单的负载均衡的实现,没有考虑到ha。

S60(PB591GI~{8]0ZO}0(SV

具体规划

将2台web服务器做成一个discuz论坛的小集群。合理分配2台web服务器的任务,分离文件共享和mysql应用,使2台服务器同时提供web服务,但由web1充当网络存储,实现数据的同步,web2充当数据库服务器,提供数据的调用。合理的分配2台服务器的负载,实现真正意义的负载均衡。

此情景只是一个负载均衡的小集群,未考虑到高可用的情况,在中小型企业中,如果一台服务器撑不住,但业务也不是特别重要,允许在服务器挂掉的情况下能断线一段时间的情况下使用。

具体是在web1上做NFS文件共享,将网页放置在web1上。将数据库放置在web2上。然后2台web服务器同时提供web服务,外界访问2台服务器时得到的网页结果是一样的

 

实现过程

首先在web1中安装nfs,apache,php

[root@localhost ~]# yum install nfs-utils httpd php php-mysql –y

创建网站目录

[root@localhost ~]# mkdir /dz

为了方便,将网站目录的权限修改为777(在真正为企业配置时千万别这么来,这里只是为了实验方便)

[root@localhost /]# chmod 777 dz -R

修改网址apache的配置文件,指向dz目录,这里只修改一行

DocumentRoot "/dz"

关闭selinux和iptables,并打开httpd

XO{_HYDT46`7H%E_FQZ(}[6

在dz中建立php测试页面,确保php运行正常

[root@localhost dz]# vi index.php #写入以下内容

 
 
  1. <?php  
  2. phpinfo();  
  3. ?> 

打开页面测试一下

4X`IEH736XRZ[K1BW)NR~VC

配置nfs服务,共享网站目录dz

[root@localhost dz]# vi /etc/exports #加入下面一行

 
 
  1. /dz     192.168.92.11(rw,async) 

启动nfs服务

2]OX9{P@NIDL[GL)]08~_L6

web1暂时配置到这里,先把配置web2配置一下

 

在web2上安装apache,php,mysql-server

[root@localhost ~]# yum install nfs-utils httpd php php-mysql mysql-server -y

然后先挂载web1的nfs目录

[root@localhost ~]# mount -t nfs 192.168.92.10:/dz /dz

 

和web1一样关闭selinux和iptables 并打开httpd,

然后修改apache的配置和web1一样网站路径为/dz,不过这里的/dz就是从web1网络挂载过来的/dz了,这里不再详细列出过程了,和web1的一样

 

然后开始为mysql配置论坛的数据库table和账户

[root@localhost ~]# mysql

 

 
 
  1. mysql&gt; create database dz;  
  2. Query OK, 1 row affected (0.01 sec) 
  3.  
  4. mysql&gt; grant all privileges on dz.* to dzroot@192.168.92.10 identified by '123456';  
  5. Query OK, 0 rows affected (0.01 sec) 
  6.  
  7. mysql&gt; grant all privileges on dz.* to dzroot@192.168.92.11 identified by '123456';  
  8. Query OK, 0 rows affected (0.00 sec) 
  9.  
  10. mysql&gt; flush privileges;  
  11. Query OK, 0 rows affected (0.00 sec) 

 

 

数据库配置好后开始配置discuz

首先到WEB1上进行配置。

[root@localhost dz]# unzip Discuz_X2.5_SC_UTF8.zip #解压discuz程序

进入/dz/config目录 打开编辑config_global_default.php文件。

[root@localhost config]# vi config_global_default.php 修改以下几行内容

 

 
 
  1. $_config['db'][1]['dbhost']             = '192.168.92.11'; #数据库一定要指向web2  
  2. $_config['db'][1]['dbuser']             = 'dzroot';   
  3. $_config['db'][1]['dbpw']               = '123456';  
  4. $_config['db'][1]['dbcharset']          = 'utf8';  
  5. $_config['db'][1]['pconnect']           = 0;  
  6. $_config['db'][1]['dbname']             = 'dz';  
  7. $_config['db'][1]['tablepre']           = 'pre_'; 

然后将其复制为以下名称(为了防止安装discuz时报错)

[root@localhost config]# cp config_global_default.php config_global.php 
[root@localhost config]# cp config_ucenter_default.php config_ucenter.php

 

浏览器中打开192.168.92.10,开始discuz的安装,进行到这一步时,对相应提示的目录进行权限的修改

A6W[V2}U`9GGINVQ1YPR9XW

 

安装成功后,用浏览器打开192.168.92.10,进入管理员后台,添加一个板块

{OM(44)(HE~Y]@O9XU355OA

 

然后打开192.168.92.11

EON]VC]}NY0CB@B~R1__SSL

 

可以看到2个web之间的内容是同步的

 

 

这就简单的搭建了一个小小的负载均衡的集群应用

实现比较简单,重要的思路的开放。能够让不同的应用的压力均摊到每个服务器上,不浪费服务器性能,这才是负载均衡的意义。



本文转自lustlost 51CTO博客,原文链接:http://blog.51cto.com/lustlost/926764,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
69
分享
相关文章
MySQL——数据库备份上传到阿里云OSS存储
MySQL——数据库备份上传到阿里云OSS存储
337 0
【告别容量焦虑】RDS MySQL高性能本地盘全规格最大存储空间提升,最高可达16TB!
RDS MySQL存储能力狂飙升级,高性能本地盘全规格最大存储空间提升,最高可达16TB!这波升级,值得一试!
HTML5 Web 存储详解
HTML5 Web存储提供了两种客户端数据存储机制:**Local Storage**和**Session Storage**。Local Storage用于长期存储数据,即使关闭浏览器数据也依然存在,适用于保存用户偏好设置等信息。Session Storage则在标签或窗口关闭时清除数据,适合存储临时信息。两者均提供了简单的API进行数据的存取操作,但需要注意的是,Web存储并非加密存储,不应存放敏感信息。现代浏览器普遍支持Web存储,合理利用这两种存储方式可提升Web应用的用户体验。
MySQL进阶突击系列(09)数据磁盘存储模型 | 一行数据怎么存?
文中详细介绍了MySQL数据库中一行数据在磁盘上的存储机制,包括表空间、段、区、页和行的具体结构,以及如何设计和优化行数据存储以提高性能。
MySQL原理简介—5.存储模型和数据读写机制
本文介绍了MySQL中InnoDB存储引擎的物理存储结构和读写机制。主要内容包括: 1. 为什么不能直接更新磁盘上的数据 2. 数据页的概念 3. 一行数据的存储 4. 数据头的内容 5. 行溢出和溢出页 6. 数据页的物理结构 7. 表空间的物理结构 8. InnoDB存储模型及读写机制总结 这些机制共同确保了InnoDB在高并发场景下的高效运行和数据一致性。
Web应用中的存储方式有哪些?
本文首发于微信公众号“前端徐徐”,介绍了几种常见的前端数据存储技术:Cookie、Web Storage(包括 localStorage 和 sessionStorage)、IndexedDB、Cache Storage 和 Memory Storage。每种技术的特点和使用场景不同,适用于不同的开发需求。文章详细解释了它们的使用方法、特点和应用场景,并提供了代码示例。
727 2
Web应用中的存储方式有哪些?
论负载均衡技术在Web系统中的应用
【11月更文挑战第4天】在当今高并发的互联网环境中,负载均衡技术已经成为提升Web系统性能不可或缺的一环。通过有效地将请求分发到多个服务器上,负载均衡不仅能够提高系统的响应速度和处理能力,还能增强系统的可扩展性和稳定性。本文将结合我参与的一个实际软件项目,从项目概述、负载均衡算法原理以及实际应用三个方面,深入探讨负载均衡技术在Web系统中的应用。
246 2
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
164 2
MySQL 存储函数及调用
MySQL 存储函数及调用
401 3

热门文章

最新文章

下一篇
oss创建bucket