当一台服务器的pv过大时,性能就会大大降低,就要考虑用到负载均衡了,这样就可以分担1台服务器的超负荷工作 ,这里就介绍下两台主机之间如何实现负载均衡
如图

s1是装有apache,php,mysql,discuz的服务器
s2是装有apache,php和discuz的服务器
s1和s2是共享一个mysql的
所以在客户端访问s2的论坛时和s1的论坛显示效果是一样的
下面先配置server1:
首先关闭selinux
# setenforce 0
1.安装软件
先把yum源先配置好,然后开始安装
# yum -y install httpd php53 php53-mbstring php53-mysql mysql mysql-server
2.解压论坛包到目录
# mkdir /bbs    --> 创建目录以便存放论坛内容
Discuz_7.2_FULL_SC_GBK.zip  --> 这是论坛的压缩包
先解压到/bbs
# unzip Discuz_7.2_FULL_SC_GBK.zip -d /bbs
# cd /bbs
/bbs目录下有个upload的目录,把里面的内容全部移到/bbs下
# mv upload/* .      
3.配置apache,添加虚拟主机
# vim /etc/httpd/conf/httpd.conf
在配置文件里添加虚拟主机
   <VirtualHost *:80>
           DocumentRoot /bbs    
   </VirtualHost>
然后把第972行的#去掉
NameVirtualHost *:80
接着保存退出
# service httpd start     --> 启动apache服务
然后在浏览器中输入172.16.101.1/install   由于第一次安装论坛,所以加上install
 
这里显示的是乱码,就编辑配置文件
# vim /etc/httpd/conf/httpd.conf
找到第747行,前面加上#   如下:
#AddDefaultCharset UTF-8
保存退出,重启服务
# service httpd restart   
刷新页面
 
已经可以正常显示页面了
按着上面的提示将short_open_tag状态改为on
# vim /etc/php.ini
找到第229行 把off改为On  如下:
short_open_tag = On
保存退出
# service httpd restart
然后再刷新页面

 
 点击同意以后会显示以下界面
目录、文件权限检查那一栏的文件都提示不可写
这就要把页面所提示的文件全部修改权限
# cd /bbs      --> 这些文件都在/bbs下
# setfacl -m u:apache:rwx ./config.inc.php ./p_w_uploads ./forumdata/ ./forumdata/cache/ ./forumdata/templates/  ./forumdata/threadcaches/ ./forumdata/logs ./uc_client/data/cache/
再刷新页面就可以了
 
 点击下一步会出现以下界面
这里就要在msyql上创建用户了
先启动mysql
# service mysqld start
# mysql
mysql>create database discuz; --> 创建数据库discuz
mysql>create user a@localhost identified by 'redhat'; --> 创建用户并设置密码redhat
mysql>grant all privileges on discuz.* to a@localhost; --> 给用户授权
mysql>flush privileges;    --> 刷新权限
mysql>\q   --> 退出
把在mysql上创建的用户填上去,管理员账号那里是论坛管理员
论坛就已经搭建好了
#############################################
下面接着在s2上面搭建,和搭建s1类似
s2上面要安装httpd php53 php53-mbstring php53-mysql
首先还是先配置好yum源
关闭selinux
# setenforce 0
1.安装软件
# yum -y install httpd php53 php53-mbstring php53-mysql
2.解压论坛包到目录
# mkdir /www      
# unzip Discuz_7.2_FULL_SC_GBK.zip -d /www
# cd /www
# mv upload/* .      

3.由于刚才搭建论坛时遇到修改配置文件的问题,所有这里就一次性修改完
添加虚拟主机
# vim /etc/httpd/conf/httpd.conf
在配置文件里添加虚拟主机
   <VirtualHost *:80>
           DocumentRoot /www   
   </VirtualHost>
把第972行的#去掉
NameVirtualHost *:80
747行,修改如下
#AddDefaultCharset UTF-8    添加#不会出现乱码
接着保存退出
# vim /etc/php.ini
229行修改如下
short_open_tag = On
保存退出
# service httpd start  启动服务
然后在浏览器中输入172.16.101.2/install  
这里就一次进入界面了
进去以后把刚才那些没有权限的文件全部修改
# cd /www
# setfacl -m u:apache:rwx ./config.inc.php ./p_w_uploads ./forumdata/ ./forumdata/cache/ ./forumdata/templates/ ./forumdata/threadcaches/ ./forumdata/logs ./uc_client/data/cache/
接着会出现之前要你输入数据库账号密码的界面
然后就在s1上操作mysql
# mysql
mysql>create user b@172.16.101.2 identified by 'redhat'; --> 由于mysql不在s2上,不能用localhost
mysql>grant all privileges on discuz.* to b@172.16.101.2;--> 给b用户授权
mysql>flush privileges;  --> 刷新权限
mysql> \q   --> 退出mysql
刷新页面填写刚才创建的用户
由于是从s2上访问数据库,所以数据库服务器那一栏就不能填写localhost了
这里把‘我要删除数据,强制安装’前面勾上,点击下一步
s2上面的论坛也搭建好了  
下面就来测试分别访问两台服务器,它们的数据是否同步
在s1上面发个贴子,看看通过s2是否能看到
先用管理员admin登录论坛,然后发帖
这里可以看到一个主题为’测试是否同步’的帖子
然后通过172.16.101.2访问看看是否有这个帖子
通过172.16.101.2访问的论坛也可以看到主题‘测试是否同步’的帖子
说明通过s1和s2都能看到相同的内容
这样,两台服务器的数据同步,就实现负载均衡了


END