LAMP+NFS實現雙web服務負載均衡

    一、實驗拓撲

    blob.png

    二、系統環境

     1、主機A、主機B、主機C:CentOS 6.5

       測試PC:         Windows 7 旗艦版

     2、實驗平臺

       VMware Workstation 10

     3、實驗域名

       myblog.com

    三、主機配置信息

     1、主機A IP:192.168.5.235 搭建web服務器 安裝php

     2、主機B IP:192.168.5.236 搭建web服務器 安裝php

     3、主機C IP: 192.168.5.237 搭建DNS、Mysql、NFS服務器

       注:由于對于企業來講,數據的價值是不可估計的,因此實際生產中,Mysql服務器主機不會同時作為其它服務器使用。

    四、所用軟件種類與版本

     blob.png

    五、實驗目的

      1、主機C搭建NFS服務器共享/shared目錄,主機A和B安裝web(httpd)服務并掛載主機C共享的NFS共享目錄作為其DocumentRoot,實現通過在瀏覽器中輸入主機A和主機B的IP地址能夠訪問到相同的頁面。

      2、主機C搭建DNS服務器,并在其區域解析庫文件中添加兩條web服務器www.myblog.com的A記錄,分別指向主機A和主機B的ip地址,通過DNS的輪詢解析實現web服務器A和web服務器B的負載均衡。 

    六、在主機C上搭建DNS、MySQL、NFS服務器

     1、搭建DNS服務器

       (1)、執行yum -y install bind安裝DNS服務程序

       (2)、編輯主配置文件/etc/named.conf,將不必要內容注釋掉,初始化環境    

         blob.png

       (3)、編輯/etc/named.rfc1912.zone添加區域

         blob.png

       (4)、創建對應的區域解析庫文件

         正向

         blob.png

         反向

         blob.png

       (5)、檢查配置文件是否有錯誤 

         blob.png

       (6)、修改新建的區域解析庫文件屬組、屬主和權限。

         blob.png

       (7)、設置named開啟動并啟動服務

         blob.png

       (8)、將實驗涉及到的主機DNS解析指向主機C

         blob.png

         確保主機A、B、C測試www.mylog.com解析結果如下:

         blob.png

     2、搭建Mysql服務器

       本文使用通用二進制版本安裝mairiadb

      (1)、創建一個邏輯分區,存放mysql數據庫data文件 

         創建lvm分區

         blob.png

         創建邏輯分區mydata并格式化成ext4格式,添加卷標LABEL為MYDATA

         # pvcreate /dev/sdb1

        Physical volume "/dev/sdb1" successfully created

       # vgcreate myvg /dev/sdb1

        Volume group "myvg" successfully created

        # lvcreate -n mydata -L 10G myvg 

           Logical volume "mydata" created

         blob.png

         將創建好的邏輯分區掛載至/mydata/data目錄下,并編輯/etc/fstab文件實現開機掛載

         創建掛載目錄

          # mkdir -pv /mydata/data

         blob.png

         掛載新建分區

         blob.png

     (2)、配置mysql

         創建mysql用戶和組   

         blob.png

         將mariadb展開至/usr/local/下并鏈接到/usr/local/mysql(注意,此目錄為約定目錄,要與本文一致)

         blob.png

         更改/usr/local/mysql/所有文件的屬主

         # chown root:mysql ./mysql/*

         blob.png

         為mysql創建配置文件存放目錄并提供配置文件

         blob.png

         編輯/etc/mysql/my.cnf,指定mysql的data位置(即上文新建邏輯分區的掛載點)

         blob.png

         初始化安裝mysql

         blob.png

         為mysql提供服務啟動腳本

         blob.png 

         創建導出環境變量配置文件并添加需導出內容

         # vim /etc/profile.d/mysql.sh

         blob.png

         導出man文檔

         # vim /etc/man.config

         blob.png 

         導出頭文件

         blob.png

         導出庫文件

         創建/etc/ld.so.conf.d/mysql.conf并添加一下內容

         blob.png

         blob.png

         啟動mysql服務

         blob.png

         確保mysql服務啟動

         blob.png

         測試

         blob.png

         為Discuz預創建數據庫myblog,并設定遠程接入數據庫用的用戶,以便主機A和B可以鏈接進來。

         >  CREATE DATABASE myblog;

         >  GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.5.%' IDENTIFIED BY '@5server';

     3、搭建NFS服務器

         # mkdir /shared 

         # groupadd peter

         # useradd -g peter peter 

         # id peter

           uid=500(peter) gid=500(peter) groups=500(peter)

         # vim /etc/exportfs

         blob.png

         # setfacl -m u:peter:rwx /shared 

         啟動nfs服務
         blob.png

         確認服務啟動

    七、在主機A上安裝apache和php

     1、將主機C的NFS共享目錄掛載至本機/www/web

       #  mkdir -pv /www/web

       #  mount -t nfs 192.168.5.237:/shared /www/web

       blob.png

     2、安裝apache

       (1)、編譯安裝apr

         #  tar -xf apr-1.5.2(1).tar.bz2

         #  cd ~./apr-1.5.2

         #  ./configure –prefix=/usr/local/apr

         #  make & make install 

       (2)、編譯安裝apr-util

         #  tar -xf apr-1.5.4(1).tar.bz2

         #  cd ~./apr-1.5.4

         #  ./configure –prefix=/usr/local/apr-util

         #  make & make install 

       (3)、編譯安裝apache

         解決依賴: yum -y install pcre-devel

         #  tar -xf httpd-2.4.9\ \(1\).tar.bz2

         #  cd ~./httpd-2.49

         #  ./configure –prefix=/usr/local/apache –sysconfdir=/etc/httpd24 –enable-so –enable-ssl –enable-cgi –enable-rewrit –with-pcre –with-zlib –with-apr=/usr/local/apr –with-apr-util=/usr/local/apr-util –enable-mpms-shared=all –with-mpm=event –enable-modules=most

         #  make && make install 

         導出環境變量

         # vim /etc/profile.d/httpd24.sh

         blob.png

         導出man文檔

         # vim /etc/man.config

         blob.png

         導出頭文件

         # ln -sv /usr/local/apache/include /usr/include/httpd

         blob.png

         導出庫文件

         # vim /etc/ld.so.conf.d/httpd24.conf

         blob.png

         提供SysV風格服務腳本

         # cp /etc/init.d/httpd /etc/init.d/httpd24

         # vim /etc/init.d/httpd24  編輯此服務腳本作如下修改

         blob.png

         設置httpd24開機啟動,并啟動apache

         #  chkconfig –add httpd24

         #  chkconfig httpd24 on 

         #  service httpd24 start

         blob.png

         測試主頁

         blob.png

     3、編譯安裝php

         解決依賴關系

         # yum -y groupintsall "Desktop Platform Development"

         # yum -y install bzip2-devel libmcrypt-devel

         編譯安裝php

         # tar -xf php-5.4.26.tar.bz2

         # cd ~./php-5.4.26

         # ./configure –prefix=/usr/local/php –with-mysql=mysqlnd –with-pdo-mysql=mysqlnd –with-mysqli=mysqlnd –enable-mbstring –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir=/usr –enable-xml –enable-sockets –with-apxs2=/usr/local/apache/bin/apxs –with-mcrypt –with-config-file-path=/etc –with-config-file-scan-dir=/etc/php.d –with-bz2 –enable-maintainer-zts 

         # make && make install

         為php提供主配置文件

         # cd ~./php-5.4.26

         # cp ./php.ini-production /etc/php.ini

         編輯apache主配置文件httpd.conf,讓其支持php 

         # vim /etc/httpd 

           添加如下兩行

           blob.png

           定位到DirectoryIndex,做如下修改

           blob.png

     4、配置Apache虛擬主機

           注釋掉原DocumentRoot,啟用虛擬主機配置文件

           blob.png

           blob.png

         編輯/etc/httpd24/extra/httpd-vhosts.conf添加一下內容

         blob.png

         創建日志文件目錄 

         # mkdir /var/log/httpd24

         創建index.php測試主頁,測試php

         # vim /usr/local/apache/htdocs/index.php

         blob.png

         重啟httpd24,測試

         # service httpd24 restart 

         blob.png

    八、在主機B上依主機A的步驟,安裝Apache和phP

    九、配置安裝Discuz并驗證

       1、解壓Discunz  

         #  unzip Discuz_X3.2_SC_UTF8.zip

       2、將解壓目錄內的內容復制到NFS共享目錄/shared中

         # cd ~/upload/* /shared

       3、將/shared下所有文件權限改為777。(如果不改,Discuz安裝時安裝環境檢查會出錯)

         # chmod -R 777 /shared/*

       4、在測試機PC的瀏覽器中輸入www.myblog.com,安裝Discuz。注意,此步驟中,數據庫服務器必須填mysql主機IP地址,而不能使用localhost,本文配置如下

         數據庫服務器:192.168.5.237

         數據庫名稱:myblog   (上文已預創建)

         數據庫登陸賬戶:root (上文已定義)

         數據庫登陸:@5server (上文已定義)

       5、定義管理員賬戶和密碼,點擊下一步進行軟件安裝,如下圖 

         blob.png

       6、登陸到Discuz發帖驗證,驗證在主機A和B能訪問到同一頁面

          輸入網站域名得到的結果

          blob.png

          指定主機A得到的結果

          blob.png 

          指定主機B得到的結果。

          至此,實驗完成。    

         

原創文章,作者:Silently,如若轉載,請注明出處:http://www.www58058.com/5813

(1)
SilentlySilently
上一篇 2015-07-06 09:16
下一篇 2015-07-06 09:22

相關推薦

  • 內核相關

    內核兩大流派單內核微內核 grub分為三個階段:1階段 1.5階段 2階段 內核階段 通過/proc/cmdline找到根并掛載2階段內容是放在/boot/grub目錄下Centos6 實驗:丟失除grub.conf外所有文件沒有修復過的時候/boot/grub下文件是放在磁盤上某個位置的修復過一次后/boot/grub下文件就起作用了,一旦執行過grub-…

    Linux干貨 2018-01-03
  • Vim和nano的區別

    Vim和nano的區別 Linux下有很多文本編輯器,其中系統(不管哪個分支)都會自帶nano和vim這兩個最基本的編輯器。vim相當于vim的升級版。今天將重點分析一下vim與nano的各自功能及區別。 1.nano 直接在命令行中敲入nano newfile即可打開文件或新建文件。 可以看到第一行反白介紹了nano的版本號以及被編輯的文件名稱。接下來就是…

    2017-08-05
  • 雷人的程序注釋

    使用Google code search可以搜索到一些比較有趣的代碼注釋,呵呵。下面的這些程序注釋有搞笑的,也有粗口,看來寫程序本來也不是一件很枯燥的事,關鍵看你的心態如何了。讀到這些注釋的時候,只能想到一個詞,那就是“瘋狂的程序員”,哈哈。Have a Fun  ;-) 寫個程序時不忘表達自己的感情,以免以后忘了。 呵呵,看來自己也不是很自信。 …

    Linux干貨 2016-05-10
  • MBR分區結構

    MBR分區結構 一、硬盤主引導記錄MBR由4個部分組成: 1、主引導程序(偏移地址0000H–0088H),它負責從活動分區中裝載,并運行系統引導程序。 2、出錯信息數據區,偏移地址0089H–00E1H為出錯信息,00E2H–01BDH全為0字節。 3、分區表(DPT,Disk Partition Table):含4個分…

    2017-08-20
  • 用戶和權限管理

    一、用戶 Linux中用戶是資源獲取的標識符,資源分配,文件系統安全權限模型的核心要素之一。密碼則是用戶認證的憑證,用戶信息和密碼信息都存放在相應的文本文件中,密碼信息在存放的過程用了一定的加密算法進行加密。   1.加密算法: 資源分派:    Authentication:認證(確認身份,也有可能好幾個人一個身份) &nbs…

    Linux干貨 2016-08-05
  • Linux網絡相關概念及bash腳本編程練習

    馬哥教育網絡班第23期+第八周課堂練習 Linux網絡相關概念及bash腳本編程練習 習題: 1.請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別 (1)網橋: 橋接器(英語:network bridge),又稱網橋,一種網路裝置,負責網路橋接(network bridging)之用。 橋接器將網絡的多個網段在數據鏈路層(O…

    Linux干貨 2016-11-15

評論列表(1條)

  • stanley
    stanley 2015-07-06 09:20

    過程詳細,繪圖專業,標識清晰,非常不錯,贊

欧美性久久久久