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

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

此篇博文仅限涉及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
分享
相关文章
HTML5 Web 存储详解
HTML5 Web存储提供了两种客户端数据存储机制:**Local Storage**和**Session Storage**。Local Storage用于长期存储数据,即使关闭浏览器数据也依然存在,适用于保存用户偏好设置等信息。Session Storage则在标签或窗口关闭时清除数据,适合存储临时信息。两者均提供了简单的API进行数据的存取操作,但需要注意的是,Web存储并非加密存储,不应存放敏感信息。现代浏览器普遍支持Web存储,合理利用这两种存储方式可提升Web应用的用户体验。
Web应用中的存储方式有哪些?
本文首发于微信公众号“前端徐徐”,介绍了几种常见的前端数据存储技术:Cookie、Web Storage(包括 localStorage 和 sessionStorage)、IndexedDB、Cache Storage 和 Memory Storage。每种技术的特点和使用场景不同,适用于不同的开发需求。文章详细解释了它们的使用方法、特点和应用场景,并提供了代码示例。
700 2
Web应用中的存储方式有哪些?
论负载均衡技术在Web系统中的应用
【11月更文挑战第4天】在当今高并发的互联网环境中,负载均衡技术已经成为提升Web系统性能不可或缺的一环。通过有效地将请求分发到多个服务器上,负载均衡不仅能够提高系统的响应速度和处理能力,还能增强系统的可扩展性和稳定性。本文将结合我参与的一个实际软件项目,从项目概述、负载均衡算法原理以及实际应用三个方面,深入探讨负载均衡技术在Web系统中的应用。
235 2
HTML5 Web 存储详解
HTML5 Web 存储包括 `localStorage` 和 `sessionStorage`,前者提供持久存储且无过期时间,后者仅在会话期间有效。两者均支持键值对形式存储数据,容量约为 5-10 MB。`localStorage` 适用于用户偏好设置、登录状态保持及离线应用缓存;`sessionStorage` 则用于临时数据如表单输入。数据以字符串形式存储,可通过 `JSON` 方法处理对象。由于数据存储于本地,不适合存放敏感信息。示例代码展示了如何使用按钮将输入框内容保存至 `localStorage` 并进行清除操作。
前端开发中,Web Storage的存储数据的方法localstorage和sessionStorage的使用及区别
前端开发中,Web Storage的存储数据的方法localstorage和sessionStorage的使用及区别
246 0
负载均衡技术在Web服务器集群中的应用
【8月更文第28天】随着互联网的发展和用户对Web服务需求的增长,单台服务器很难满足大规模访问的需求。为了提高系统的稳定性和扩展性,通常会采用Web服务器集群的方式。在这种架构中,负载均衡器扮演着至关重要的角色,它能够合理地分配客户端请求到不同的后端服务器上,从而实现资源的最优利用。
242 2
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
MySQL集群如何实现负载均衡?
【8月更文挑战第16天】MySQL集群如何实现负载均衡?
574 6
【优秀python web设计】基于Python flask的猫眼电影可视化系统,可视化用echart,前端Layui,数据库用MySQL,包括爬虫
本文介绍了一个基于Python Flask框架、MySQL数据库和Layui前端框架的猫眼电影数据采集分析与可视化系统,该系统通过爬虫技术采集电影数据,利用数据分析库进行处理,并使用Echart进行数据的可视化展示,以提供全面、准确的电影市场分析结果。
229 4
go项目实现mysql接入以及web api
go项目实现mysql接入以及web api
70 0