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
下一篇 2015-07-06

相關推薦

  • 理解基本權限以及特殊權限:Suid 、Sgid、Sticky以及acl

    理解基本權限以及特殊權限:Suid 、Sgid、Sticky以及acl 在Linux中特殊權限是什么?為什么要設定特殊權限?回答這個問題前,我們不妨思考為什么要設定權限? 大家知道Linux中一切皆文件。不論你是什么,在linux系統中都會被當做一個文件來看待。無論你是文本或目錄,硬件或軟件,圖片或視頻等等,統統都被當做文件來看待。所以,在linux中,文件…

    Linux干貨 2017-04-08
  • 第二周部分練習

    (1)用戶管理: 1.創建用戶gentoo,附加組為bin和root,默認shell為/bin/csh,注釋信息為”Gentoo Distribution” 使用id命令查看用戶信息 使用cat命令查看配置文件/etc/passwd 2.創建下面的用戶、組和組成員關系 名字為admins的組 用戶natasha,使用admins作為附…

    2017-07-23
  • N26-第十五周

    溫故知新1、總結sed和awk的詳細用法;sed stream EDitor 流編輯器,行級sed  [option] …’script’ [input-file]script 地址定界編輯命令常用選項-n 靜默模式 ,不輸出模式空間中的內容至屏幕-e script –expression …

    Linux干貨 2017-08-24
  • 馬哥教育網絡班N22期+第五周課程練習

    1、顯示當前系統上root、fedora或user1用戶的默認shell; ~]# grep -E "^(root|user1|fedora)" /etc/passwd | awk -F: '{ print $1 $7 }' root/bin/bash user1/bin/bash fedora/bin/bash 2、…

    Linux干貨 2016-10-17
  • IP地址之IPv6

    一、IPv6概述   目前使用的IP地址都是IPv4版本,之所以開發出IPv6版本主要是基于以下原因:     1、IPv4地址空間不足,分配不合理;     2、IPv4頭部太過于復雜;     3、使用IPv4使得路由器及主機配置復雜;     4、對于IPv4重新…

    Linux干貨 2016-01-13
  • N25_第十三周作業

    1、建立samba共享,共享目錄為/data,要求:(描述完整的過程)  1)共享名為shared,工作組為magedu;  2)添加組develop,添加用戶gentoo,centos和ubuntu,其中gentoo和centos以develop為附加組,ubuntu不屬于develop組;密碼均為用戶名;  3)添加samb…

    Linux干貨 2017-03-06

評論列表(1條)

  • stanley
    stanley 2015-07-06 09:20

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

欧美性久久久久