分離mysql和儲存實現雙web負載均衡

科技小先鋒發表於2017-11-22

此篇博文僅限涉及web伺服器部分,至於負載均衡的實現可以按照需求來做,可以是基於DNS解析的負載均衡,也可以用lvs或者專用的負載均衡器(如F5或randware)

這是一個比較簡單的負載均衡的實現,沒有考慮到ha。

S60(PB591GI~{8]0ZO}0(SV

具體規劃

將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 –y

建立網站目錄

[root@localhost ~]# mkdir /dz

為了方便,將網站目錄的許可權修改為777(在真正為企業配置時千萬別這麼來,這裡只是為了實驗方便)

[root@localhost /]# chmod 777 dz -R

修改網址apache的配置檔案,指向dz目錄,這裡只修改一行

DocumentRoot “/dz”

關閉selinux和iptables,並開啟httpd

XO{_HYDT46`7H%E_FQZ(}[6

在dz中建立php測試頁面,確保php執行正常

[root@localhost dz]# vi index.php #寫入以下內容


  1. <?php  
  2. phpinfo();  
  3. ?> 

開啟頁面測試一下

4X`IEH736XRZ[K1BW)NR~VC

配置nfs服務,共享網站目錄dz

[root@localhost dz]# vi /etc/exports #加入下面一行


  1. /dz     192.168.92.11(rw,async) 

啟動nfs服務

2]OX9{P@NIDL[GL)]08~_L6

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

 


  1. mysql&gt; create database dz;  
  2. Query OK, 1 row affected (0.01 sec) 
  3.  
  4. mysql&gt; grant all privileges on dz.* to dzroot@192.168.92.10 identified by `123456`;  
  5. Query OK, 0 rows affected (0.01 sec) 
  6.  
  7. mysql&gt; grant all privileges on dz.* to dzroot@192.168.92.11 identified by `123456`;  
  8. Query OK, 0 rows affected (0.00 sec) 
  9.  
  10. mysql&gt; flush privileges;  
  11. 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 修改以下幾行內容

 


  1. $_config[`db`][1][`dbhost`]             = `192.168.92.11`; #資料庫一定要指向web2  
  2. $_config[`db`][1][`dbuser`]             = `dzroot`;   
  3. $_config[`db`][1][`dbpw`]               = `123456`;  
  4. $_config[`db`][1][`dbcharset`]          = `utf8`;  
  5. $_config[`db`][1][`pconnect`]           = 0;  
  6. $_config[`db`][1][`dbname`]             = `dz`;  
  7. $_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的安裝,進行到這一步時,對相應提示的目錄進行許可權的修改

A6W[V2}U`9GGINVQ1YPR9XW

 

安裝成功後,用瀏覽器開啟192.168.92.10,進入管理員後臺,新增一個板塊

{OM(44)(HE~Y]@O9XU355OA

 

然後開啟192.168.92.11

EON]VC]}NY0CB@B~R1__SSL

 

可以看到2個web之間的內容是同步的

 

 

這就簡單的搭建了一個小小的負載均衡的叢集應用

實現比較簡單,重要的思路的開放。能夠讓不同的應用的壓力均攤到每個伺服器上,不浪費伺服器效能,這才是負載均衡的意義。

本文轉自lustlost 51CTO部落格,原文連結:http://blog.51cto.com/lustlost/926764,如需轉載請自行聯絡原作者


相關文章