实验基于redhat 5.8,apache2.2,php53,Mysql5.0,且用rpm安装。如下图所示

apache与mysql分离,实现负载均衡_apache与mysql分离

一,在172.16.150.21服务器安装好DNS,且DNS的的正向解析与反向解析的添加两条www,只是IP地址不一样。这要做的作用是,当第一个客户端请求来了,则开始第一台web去响应,第二个客户端请求来了,则第二台web去向去响应,以达到负载均衡的作用。

  1. $TTL 600 
  2. $ORIGIN bingo.com. 
  3. @       IN SOA  ns.bingo.com.  admin.bingo.com. ( 
  4.                                         0       ; serial 
  5.                                         1H      ; refresh 
  6.                                         2H      ; retry 
  7.                                         1H      ; expire 
  8.                                         3H )    ; minimum 
  9.         IN      NS      ns.bingo.com. 
  10.         IN      MX 10   mail.bingo.com. 
  11. ns      IN      A       172.16.150.21 
  12. www     IN      A       172.16.150.20 
  13. www     IN      A       172.16.150.21 

二,在两台web服务器上yum -y insall httpd php53 php53-mbstring php53-mysql mysql,并将对应的服务启动。

三,在数据库服务器上yum -y insall mysql mysql-server,并启动服务

四,172.16.150.20的web上配置好/etc/httpd/conf/httpd.conf,注释DocumentRoot,这一行,启用NameVirtualHost,并配置好一个虚拟主机,如下图

  1. <VirtualHost *:80> 
  2.         DocumentRoot /web/vhost/www 
  3.         ServerName  www.bingo.com 
  4.         <Directory "/web/vhost/www" > 
  5.         options none 
  6.         AllowOverride none 
  7.         order deny,allow 
  8.          allow from all 
  9.         </Directory> 
  10. </VirtualHost> 

五,下载 Discuz_7.2_FULL_SC_GBK.zip,解压到Discuz的解压到数据服务器中的/web/www下,通过NFS的方式将/web/www/目录共享出来,

  1. /web/www        172.16.0.0/16(rw,no_root_squash) 

并启动NFS服务。

六,172.16.150.20上挂载此目录,mount -t nfs 172.16.150.22:/web/www /web/vhost/www(为什么要挂载这个目录,因为定义虚拟主机时已经定义好了)

七,上面步骤如果有出错的请关闭Selinux。此时将window上hosts文件添加一行172.16.150.20  www.bingo.com,也可以客户机DNS的IP指定虚拟机的IP。在浏览器中输入www.bingo.com/install开始安装Discuz。其中会提示无法远程连接到mysql,此时需要在mysql上执行远程授权,并需要创建数据库discuz。 

  1. grant all privileges on *.* to root@'%' identified by 'redhat'; 
  2.  
  3. create datebase discuz; 
  4.  
  5. grant all privileges on discuz.* to root@'%' identified by 'redhat'; 
  6.  
  7. FLUSH  privileges; 

八,如果安装时出现乱码,则将/etc/httpd/conf/httpd.conf中的UTF-8其中一行注释,并重启服务。安装时提示需要将/web/vhost/www下文件需要写权限,则根据提示将相对应的文件修改,让apache用户有修改权限,为什么要apache,因为运行httpd进程的这个用户是apache,在httpd.conf里已经定义好了。

九,安装完之后,在浏览器中中访问www.bingo.com,如果出现图片无法显示,则将/etc/php.ini中的short_open_tag值修改成on。

十,将web配置好的配置文件/etc/httpd/conf/httpd.conf和/etc/php.ini复制到172.16.150.21上,并注意两个文件的属主与属组。并挂载mount -t nfs 172.16.150.22:/web/www /web/vhost/www。并重启服务,并测试。

十一,在浏览器先用172.16.150.20,访问论谈,并注册账号上传图片。退出账号,用172.16.150.21访问论谈,登录论谈看是否能刚才所发的图片。如果OK,apache与mysql分别安装在不同的服务器的已经成功,当然此种方法不是最好的解决办法,毕竟会给mysql数据服务器造成比较大的压力