天天看點

基于輪詢解析+共享存儲(NFS)的LAMP

<a href="http://s3.51cto.com/wyfs02/M02/23/1C/wKioL1MxyXXxprq2AAIYgfjG0Xk421.bmp" target="_blank"></a>

一、預備知識:

5、資料庫基礎知識

6、網絡共享

7、lvm

如果你具備以上知識,那麼上圖将一目了然(隻是我畫的太爛了)

二、簡單的說明一下上圖所能夠實作的功能

1、如果有大量的請求是能過DNS智能配置設定置流量,減小前端APACHE1和APACH2單獨壓力,目前端一個伺服器出現故障時,不會讓業務下線。

2、在PHP伺服器上挂載一個儲存設備,做為PHP與APACHE利用NFS服務共享存儲,存放靜态或動态資源便于集中式的管理。

3、結合mysql資料庫來存儲業務資料。

三、本機環境及所用到的軟體版本

系統:centos6.5.x86_64

DNS:BIND 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6

HTTPD:采用編譯安裝httpd-2.4.9.tar.bz2

PHP:采用編譯安裝PHP-5.4.26.tar.bz2

mysql:采用通用二進制安裝mysql-5.5.33.tar.bz2

四、配置過程

1、配置DNS伺服器(僅正向解析)

前提:

為DNS設定IP位址,主機名,DNS.

在本實驗中DNS配置如下

主機名:www.dns.essun.com

IP位址:eth0:192.168.1.50/24,eth0:0 10.01.10.10/8

DNS: 192.168.1.50

功能:為其它域内主機解析

①使用yum安裝bind,修改配置檔案

1

<code>#vim /etc/named.conf</code>

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<code>options {</code>

<code>    </code><code>directory   </code><code>"/var/named"</code><code>;</code>

<code>        </code><code>rrset-order { order random; };</code>

<code>};</code>

<code>#rrset-order 支援三個參數:fixed, random, cyclic 。</code>

<code>#fix 會将多個A記錄按配置檔案的順序固定給出</code>

<code>#random 會随機給出</code>

<code>#cyclic 會循環給出.</code>

<code>zone </code><code>"."</code> <code>IN {</code>

<code>    </code><code>type</code> <code>hint;</code>

<code>    </code><code>file</code> <code>"named.ca"</code><code>;</code>

<code>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             </code> 

<code>zone </code><code>"essun.com"</code> <code>IN {</code>

<code>    </code><code>type</code> <code>master;</code>

<code>    </code><code>file</code> <code>"essun.com.zone"</code><code>;</code>

<code>zone </code><code>"localhost."</code> <code>IN {</code>

<code>    </code><code>file</code> <code>"named.localhost"</code><code>;</code>

<code>#include "/etc/named.rfc1912.zones";</code>

<code>#include "/etc/named.root.key";</code>

②配置資料區域檔案(#vim /var/named/essun.com.zone)

<a href="http://s3.51cto.com/wyfs02/M02/23/1B/wKiom1Mx0-ixXrxLAAHW5FPaCHk544.jpg" target="_blank"></a>

③寫完之後進行文法檢查

<code>檢查文法</code>

<code>#named-checkconf</code>

<code>檢查資料檔案</code>

<code>#named-checkzone </code><code>"essun.com"</code> <code>"/var/named/essun.com.zone"</code>

④如果沒有錯誤,就可以啟動DNS服務,為其它伺服器解析

測試一下:

<a href="http://s3.51cto.com/wyfs02/M01/23/1E/wKioL1MyPcriUhChAAIzOnPwVg4455.jpg" target="_blank"></a>

注:

⑤将DNS添加到開機啟動服務清單,這樣就可以開機自動啟動服務了

<a href="http://s3.51cto.com/wyfs02/M00/23/1D/wKiom1MyQcuQxdxBAAC79Hmq5VE736.jpg" target="_blank"></a>

======================================到此DNS安裝完成=================================

2、編譯安裝HTTPD

配置網絡屬性

第一台HTTPD伺服器

主機名:www.apache.essun.com

IP位址:eth0:192.168.1.10/24

DNS:192.168.1.50

第二台HTTPD伺服器

IP位址:eth0:192.168.1.20/24

httpd-vhost檔案内容如下:(兩台配置檔案完全相同)

<a href="http://s3.51cto.com/wyfs02/M01/23/26/wKioL1MyoibjlhuDAAHsPdVDVak343.jpg" target="_blank"></a>

在寫虛拟主機通過fcgi來處理php請求時的位址要指向本實驗的PHP伺服器的IP位址

②在每一台伺服器上添加一個普通使用者,用于可以通路共享,要與NFS伺服器上建立的使用者UID相同

<code>#useradd u 1000 http</code>

<code># echo "http" | passwd --stdin http</code>

========================================================================================

3、編譯安裝PHP

IP位址:eth0:192.168.1.30/24

②要修改監聽的IP位址。

③安裝nfs.

<code>#yum install nfs -y</code>

④挂載一個新硬碟或分區到PHP伺服器站點目錄

<a href="http://s3.51cto.com/wyfs02/M01/23/1D/wKiom1MyR83RcxwHAACPE-xcCII952.jpg" target="_blank"></a>

⑤共享此目錄

<a href="http://s3.51cto.com/wyfs02/M01/23/1F/wKioL1MySMOR1ZawAACrGSVm-eo701.jpg" target="_blank"></a>

⑥添加一個使用者

⑦給共享目錄授權

<code>#chown -R root:http /www/web</code>

<code>#chmod -R 775 /www/web</code>

⑧啟動NFS服務

<code>#service nfs start</code>

===================================到此PHP與NFS安裝完畢=============================

4、安裝Mysql

前提

IP位址:eth0:192.168.1.40/24

②建立立一個資料庫

<code>mysql&gt;create database </code><code>test</code><code>;</code>

<a href="http://s3.51cto.com/wyfs02/M02/23/1E/wKiom1MyWRHz25QWAAD3U4ffH44296.jpg" target="_blank"></a>

③授權使用者

<code>mysql&gt;GRANT ALL PRIVILEGES ON </code><code>test</code><code>.* TO </code><code>'root'</code><code>@</code><code>'192.168.1.30'</code><code>IDENTIFIED BY </code><code>'mysql'</code> <code>;</code>

===============================================mysql相關配置完成========================

5、測試

1、安裝discuz

下載下傳最新版本的discuz解壓到PHP的共享站點目錄

<a href="http://s3.51cto.com/wyfs02/M00/23/20/wKioL1MyX5CAI1sTAADLkY55JZ4828.jpg" target="_blank"></a>

修改配置檔案

<code>#cd /www/web/upload/config</code>

<code>#cp config_global_default.php config_global.php</code>

<code>#vim config.global.php</code>

<a href="http://s3.51cto.com/wyfs02/M01/23/26/wKioL1Mym1ewwjdVAAG0wrWCcHs050.jpg" target="_blank"></a>

要對upload目錄給權限(安裝需要)

#chmod 777 upload/

2、将PHP上的共享目錄挂載到前端

注:APACHE1的挂載方法與此相同。

3、安裝discuz

通過浏覽器通路www.aache.essun.com/upload就可以在web界面安裝discuz論壇了,安裝完成後,會讓你輸入管理者密碼,确認後就可以管理論壇了。

4、網絡測試

我的測試環境

實體機:

<a href="http://s3.51cto.com/wyfs02/M00/23/25/wKiom1MynnyCQeLPAAF_LWCXLbE513.jpg" target="_blank"></a>

通過VMnet1與虛拟機中的DNS相連。

<a href="http://s3.51cto.com/wyfs02/M02/23/26/wKioL1MynqCz7U2WAAGL4L9XnXc682.jpg" target="_blank"></a>

虛拟機中的其它伺服器通過VMnet8相連

<a href="http://s3.51cto.com/wyfs02/M00/23/26/wKioL1MynuGx6bGiAAGRJ77dvWo415.jpg" target="_blank"></a>

(經過多方測試,還是用了VMnet8,這樣10段的網絡相當于沒有生效。。。)

實體機與虛拟機的伺服器測試

<a href="http://s3.51cto.com/wyfs02/M01/23/25/wKiom1Myn5fTRWuBAAFza-tvz_c197.jpg" target="_blank"></a>

5、論壇測試

APACHE1

<a href="http://s3.51cto.com/wyfs02/M01/23/26/wKioL1Myn8WgY8gLAAHw55C8E2E023.jpg" target="_blank"></a>

APACHE2

<a href="http://s3.51cto.com/wyfs02/M02/23/26/wKioL1Myn-ORW0kyAAJf8_enIwQ854.jpg" target="_blank"></a>

FQDN

<a href="http://s3.51cto.com/wyfs02/M00/23/26/wKioL1MyoAOQr7yQAAJ5eFp6jAM803.jpg" target="_blank"></a>

由于兩台主機的FQDN相同,是以無法判斷通路的是那一台主機,那我用dig測試一下,服務是怎麼響應的

<a href="http://s3.51cto.com/wyfs02/M00/23/25/wKiom1MyoQ6w8qPsAAEZIiMObnA644.jpg" target="_blank"></a>

第二次

<a href="http://s3.51cto.com/wyfs02/M01/23/25/wKiom1MyoTHS2tu1AAG7cYG0448221.jpg" target="_blank"></a>

第三次

<a href="http://s3.51cto.com/wyfs02/M00/23/25/wKiom1MyoUqwXCWZAAG4K7qVo9U392.jpg" target="_blank"></a>

看到了吧,DNS随機解析,也不能說明就能實作智能解析,我們知道DNS解析過的域名是有緩存的,是以用這種方式還是不妥的,這裡僅是實驗,将之前的知識結合起來運用,就沒有問題了

===================================到此本實驗測試結束================================

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