此篇博文仅限涉及web服务器部分,至于负载均衡的实现可以按照需求来做,可以是基于DNS解析的负载均衡,也可以用lvs或者专用的负载均衡器(如F5或randware)
这是一个比较简单的负载均衡的实现,没有考虑到ha。
具体规划:
将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 �Cy
创建网站目录
[root@localhost ~]# mkdir /dz
为了方便,将网站目录的权限修改为777(在真正为企业配置时千万别这么来,这里只是为了实验方便)
[root@localhost /]# chmod 777 dz -R
修改网址apache的配置文件,指向dz目录,这里只修改一行
DocumentRoot "/dz"
关闭selinux和iptables,并打开httpd
在dz中建立php测试页面,确保php运行正常
[root@localhost dz]# vi index.php #写入以下内容
<?php phpinfo(); ?>
打开页面测试一下
配置nfs服务,共享网站目录dz
[root@localhost dz]# vi /etc/exports #加入下面一行
/dz 192.168.92.11(rw,async)
启动nfs服务
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
mysql> create database dz; Query OK, 1 row affected (0.01 sec) mysql> grant all privileges on dz.* to [email protected] identified by '123456'; Query OK, 0 rows affected (0.01 sec) mysql> grant all privileges on dz.* to [email protected] identified by '123456'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; 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 修改以下几行内容
$_config['db'][1]['dbhost'] = '192.168.92.11'; #数据库一定要指向web2 $_config['db'][1]['dbuser'] = 'dzroot'; $_config['db'][1]['dbpw'] = '123456'; $_config['db'][1]['dbcharset'] = 'utf8'; $_config['db'][1]['pconnect'] = 0; $_config['db'][1]['dbname'] = 'dz'; $_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的安装,进行到这一步时,对相应提示的目录进行权限的修改
安装成功后,用浏览器打开192.168.92.10,进入管理员后台,添加一个板块
然后打开192.168.92.11
可以看到2个web之间的内容是同步的
这就简单的搭建了一个小小的负载均衡的集群应用
实现比较简单,重要的思路的开放。能够让不同的应用的压力均摊到每个服务器上,不浪费服务器性能,这才是负载均衡的意义。