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

  1. 云栖社区>
  2. 博客>
  3. 正文

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

科技小先锋 2017-11-22 13:17:00 浏览1278
展开阅读全文

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

网友评论

登录后评论
0/500
评论