天天看點

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,如需轉載請自行聯系原作者