DNS輪詢 + LAMP + NFS


整體架構圖。

wKiom1PyANzhUKKvAAH-Sn55yg8692.jpg

架構使用操作系統:

DNS+HTTP1 HTTP2  NFS 主機均使用CentOS6.5 x86_64操作系統。

MariaDB主機採用Ubuntu Server12.04  x86_64 操作系統。


一.NFS網絡文件系統簡介:

network file system,一種分散式文件系統協議,主要功能是讓網絡上不同的主機,不同的操作系統共同訪問一個文件,允許不同客戶端及服務端通過一組RPC分享相同的文件系統,NFS獨立於操作系統。


二.安裝MariaDB,二進制源碼包安裝。

默認安裝的時候,Ubuntu是沒有安裝lvm相關命令的。

剛安裝好的系統要指定軟件包源地址。我這邊是apt-get update。

1.)創建lvm邏輯卷。

#apt-get install lvm2
其他的部分都是一樣的。
# fdisk /dev/sdb
# pvcreate /dev/sdb1
# vgcreate data_vg /dev/sdb1
# lvcreate –L 10G –n data_lv data_vg
# lvs
  LV      VG     Attr   LSize  Origin Snap% Move Log Copy%  Convert
  data_lvdata_vg -wi-ao 10.00g

 

2.)創建數據目錄,並掛載。

# mkdir /MySQL
# mount /dev/data_vg/daya_lv /MySQL
# df -lh
/dev/mapper/data_vg-data_lv  9.8G  61M  9.2G   1% /MySQL


3.)創建用戶 組,修改/MySQL屬組。

# groupadd –r mysql
# useradd –g mysql –r mysql
# chgrp mysql /MySQL


4.)解壓MariaDB,初始化安裝。

# cd /usr/local/
# tar xf mariadb-5.5.36-linux-x86_64.tar.gz
# ln -sv mariadb-5.5.36-linux-x86_64 mysql
# cd mysql
# chown -R mysql:mysql *
# cp support-files/my-large.cnf /etc/my.cnf
# cp support-files/mysql.server /etc/init.d/mysqld
# ./scripts/mysql_install_db --user=mysql--datadir=/MySQL/data
# /etc/init.d/mysqld start

數據庫環境準備完成


二.開始安裝http,因爲之前安裝過,直接打包複製出來一份,這次解壓就可以使用了。

1.)只需要安裝pcre,如果想自己手動編譯,之前文章有LAMP手動編譯安裝的。

#yum install pcre-devel


2.)解壓好後的http。

# ls
apr-1.5 apr-util  httpd  httpd-2.4.4-linux-x86_64.tar.gz  httpdconf Sys-httpd
 
# mv apr-1.5/ apr-util/ httpd/ /usr/local/
# mv httpdconf/ /etc/httpd
# mv Sys-httpd /etc/init.d/httpd
# chkconfig --add httpd
# service httpd start
                                                          [  OK  ]

 

3.)查看進程。

# ps aux | grep httpd
root     1429  0.0  0.9 76940  2228 ?        Ss  18:26   0:00/usr/local/httpd/bin/httpd
daemon   1431  0.0  0.8 421200 2040 ?        Sl   18:26  0:00 /usr/local/httpd/bin/httpd
daemon   1432  0.0  0.8 421200 2040 ?        Sl   18:26  0:00 /usr/local/httpd/bin/httpd
daemon   1433  0.0  0.8 421200 2048 ?        Sl   18:26  0:00 /usr/local/httpd/bin/httpd
root     1516  0.0  0.3 103244  860 pts/0    S+   18:27  0:00 grep httpd


4.)訪問http1的首頁。

wKioL1PyBBHQueb8AACKsyfcp6A288.jpg




5.)第二個http主機也是同樣的安裝方法。

wKioL1PyBGTDB5r2AACQ89wlDqg469.jpg

三.開始安裝DNS,詳細步驟不再演示。

1.)修改主配置文件

# vim /etc/named.rfc1912.zones
zone "zhang.com" IN {
        typemaster;
        file"zhang.com.zone";
};


2.)創建zhang.com.zone配置文件。

# vim /var/named/zhang.com.zone
$TTL 600
@      IN      SOA     ns1.zhang.com.  admin.zhang.com. (
                        2014081807
                        2H
                        10M
                        7D
                        1D
)
       IN      NS      ns1
       IN      MX      10     mail.zhang.com.
ns1    IN      A       172.16.32.10
www    IN      A       172.16.32.10
www    IN      A       172.16.32.11
~

 

3.)重啓dns                            

# /etc/init.d/named restart
Stopping named:                                           [  OK  ]
Starting named:                                            [ OK  ]
注意權限問題。

 

4.)開始修改兩個http主機配置文件,修改主機名,測試DNS解析,域名相同

ServerName www.zhang.com:80


5.)開始解析測試。

# cat /etc/resolv.conf 
nameserver 172.16.32.10
 
# nslookup 
> www.zhang.com
Server:       172.16.32.10
Address:   172.16.32.10#53
 
Name:  www.zhang.com
Address: 172.16.32.11
Name:  www.zhang.com
Address: 172.16.32.10


四.開始安裝php。

1.)安裝依賴包

# yum -y groupinstall "Desktop PlatformDevelopment" 
# yum -y install bzip2-devel libmcrypt-devel


2.)解壓安裝php。

# tar xf php-5.4.8-linux-x86_64.tar.gz
# ls
php5 php-5.4.8-linux-x86_64.tar.gz php-fpm  php.ini
# mv php5/ /usr/local/
# mv php-fpm /etc/init.d/php-fpm
# mv php.ini /etc/
# chkconfig --add php-fpm
 
#  vim /usr/local/php5/etc/php-fpm.conf
listen = 172.16.32.12:9000


3.)啓動php,查看進程。

# service php-fpm start
Starting php-fpm done
 
# ps -ef | grep php
root     1448     1  0 18:46 ?        00:00:00 php-fpm: master process(/usr/local/php5/etc/php-fpm.conf)                                                                     
nobody   1449  1448  0 18:46 ?        00:00:00 php-fpm: pool www                                                                                                               
nobody   1450  1448  0 18:46 ?        00:00:00 php-fpm: pool www                                                                                                              
nobody   1451  1448  0 18:46 ?        00:00:00 php-fpm: pool www                                                                                                              
nobody   1452  1448  0 18:46 ?        00:00:00 php-fpm: pool www                                                                                                              
nobody   1453  1448  0 18:46 ?        00:00:00 php-fpm: pool www


五.開始結合php和http,程序包只是在剛安裝好的時候打包的,裏面的配置文件還是初始文件。

1.)修改httpd.conf配置文件。

# vim /etc/httpd/httpd.conf

#啓用代理模塊
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_modulemodules/mod_proxy_fcgi.so 

#修改網頁根目錄
DocumentRoot "/var/www/php"
<Directory "/var/www/php"> 
…

#使http支持php頁面 
<IfModule dir_module>
   DirectoryIndex index.php index.html
</IfModule>                                                                                                      
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

#關閉正向代理,修改爲php主機地址
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$fcgi://172.16.32.12:9000/var/www/php/$1


2.)創建對應的目錄,重啓httpd。

# mkdir -pv /var/www/php
# service httpd restart
Stopping httpd:                                           [  OK  ]
Starting httpd:                                           [  OK  ]


3.)另外一臺http主機相同配置。

# scp /etc/httpd/httpd.conf172.16.32.10:/etc/httpd/httpd.conf


4.)切換到php主機,創建相對應的目錄,並且創建php測試頁。

# mkdir -pv /var/www/php
# vim /var/www/php/index.php
<?php
       phpinfo();
?>


5.)訪問兩個測試頁,看看http結合php是否正常。

wKioL1PyB-qS9PujAAMuhs4ztf8553.jpg

wKiom1PyBtPzHJdDAAM97b79XzY650.jpg



httd結合php已經正常,開始創建NFS文件系統。


六.切換到nfs主機。

1.)創建文件共享目錄,添加要共享的主機地址,給予讀寫權限。

#mkdir /share/nfs -pv
# vim /etc/exports
/share/nfs 172.16.32.10(rw) 172.16.32.11(rw)172.16.32.12(rw)


2.)啓動nfs。

# /etc/init.d/nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]


3.)創建一個測試文件,看其他被共享主機是否可以看到。

# touch /share/nfs/test


4.)切換到http主機,掛載。如果showmount命令沒有的話,是需要安裝的。

# showmount -e 172.16.32.20
Export list for 172.16.32.20:
/share/nfs 172.16.32.12,172.16.32.11,172.16.32.10

# mount -t nfs 172.16.32.20:/share/nfs /var/www/php/
# cd /var/www/php/
ls
test


現在已經可以看得到測試文件了,把另外一臺http主機和php主機同樣的方法掛載上。


七.這時候就可以下載Discuz論壇安裝了。將軟件包放到nfs主機共享目錄上。

1.)解壓Discuz,給/upload下的文件相對應的權限。

# pwd
/share/nfs
# unzip Discuz_X3.2_SC_GBK.zip
 
# chmod -R go+w upload/
# chmod -R go+w config/
# chmod -R go+w uc_*


2.)回到數據庫,創建數據庫,創建帳號。

MariaDB [(none)]> CREATE DATABASE bbsdb;
Query OK, 1 row affected (0.00 sec)
 
MariaDB [(none)]> GRANT ALL ON bbsdb.* TO'bbsAdmin'@'172.16.32.12' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.01 sec)
 
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)


3.)開始安裝Discuz論壇。

wKioL1PyCXLjMVQaAAPuB73fRkk057.jpg

wKiom1PyCFyjQ769AAPi_b08cC0693.jpg


論壇通過nfs文件系統安裝完成

 

總結:如果不想使用nfs文件系統,需要在被共享主機卸載掉掛載目錄,才能進行關機操作,不然正常關機會卡住。

DNS輪詢的時候權重分配的不是很理想,可能刷新的時候,一直訪問的是一個IP地址。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章