天天看点

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

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

<a href="http://blog.51cto.com/attachment/201207/201611851.jpg" target="_blank"></a>

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

$TTL 600 

$ORIGIN bingo.com. 

@       IN SOA  ns.bingo.com.  admin.bingo.com. ( 

                                        0       ; serial 

                                        1H      ; refresh 

                                        2H      ; retry 

                                        1H      ; expire 

                                        3H )    ; minimum 

        IN      NS      ns.bingo.com. 

        IN      MX 10   mail.bingo.com. 

ns      IN      A       172.16.150.21 

www     IN      A       172.16.150.20 

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,并配置好一个虚拟主机,如下图

&lt;VirtualHost *:80&gt; 

        DocumentRoot /web/vhost/www 

        ServerName  www.bingo.com 

        &lt;Directory "/web/vhost/www" &gt; 

        options none 

        AllowOverride none 

        order deny,allow 

         allow from all 

        &lt;/Directory&gt; 

&lt;/VirtualHost&gt; 

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

/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。 

grant all privileges on *.* to root@'%' identified by 'redhat'; 

create datebase discuz; 

grant all privileges on discuz.* to root@'%' identified by 'redhat'; 

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数据服务器造成比较大的压力

本文转自 deng304749970 51CTO博客,原文链接:http://blog.51cto.com/damondeng/931921,如需转载请自行联系原作者