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

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
简介:

此篇博文仅限涉及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,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
存储 SQL 关系型数据库
MySQL 存储函数及调用
本文主要介绍了MySQL存储函数及调用的方法,介绍了存储函数的示例,如何在MySQL中创建存储函数,以及介绍了MySQL中如何创建触发器,一目了然。在MySQL中,存储函数是预定义的SQL逻辑单元,可接收参数并返回单个值。创建存储函数使用`CREATE FUNCTION`语句,如示例中的`square_number`函数,它接收一个整数并返回其平方。调用存储函数就像调用普通函数一样,例如在`SELECT`语句中。存储函数可用于简化复杂逻辑,提高效率。此外,还可以通过`DROP FUNCTION`删除不再需要的函数。示例展示了不同场景下的存储函数应用,包括数字运算、字符串处理和逻辑判断。
94 2
|
1月前
|
存储 SQL 关系型数据库
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】(2)
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】
|
1月前
|
存储 SQL 关系型数据库
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】(1)
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】
|
1月前
|
关系型数据库 MySQL 分布式数据库
PolarDB产品使用问题之 MySQL数据库中,执行delete命令删除数据后,存储空间通常不会立即释放,该如何优化
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
10天前
|
存储 SQL 关系型数据库
实时计算 Flink版产品使用问题之要配置MySQL集群存储节点,该如何配置
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
1月前
|
存储 负载均衡 应用服务中间件
Web架构&OSS存储&负载均衡&CDN加速&反向代理&WAF防护
Web架构&OSS存储&负载均衡&CDN加速&反向代理&WAF防护
|
1月前
|
开发框架 .NET PHP
Web服务搭建&站库分离&路由访问
Web服务搭建&站库分离&路由访问
|
1月前
|
存储 SQL 关系型数据库
MySQL存储过程和存储函数的使用
MySQL的存储过程和存储函数在功能和用法上有明显的区别。存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,通过指定名称和参数(如果有)来调用执行,可以返回多个值或结果集,但不直接返回值。而存储函数则是一个有返回值的特殊存储过程,它返回一个值或表对象,可以直接嵌入SQL语句中使用,如SELECT语句中。两者都是为了提高SQL代码的重用性和性能,但使用场景和方式有所不同。
176 4
|
1月前
|
存储 安全 关系型数据库
MYSQL--存储函数
MYSQL--存储函数
|
1月前
|
存储 DataWorks 关系型数据库
DataWorks产品使用合集之在使用数据集成中的同步任务从mysql同步表到oss,存储为csv时,最终生成的文件中没有表头,这个属性可以在哪里配置么
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。