整體架構圖。
架構使用操作系統:
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的首頁。
5.)第二個http主機也是同樣的安裝方法。
三.開始安裝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是否正常。
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論壇。
論壇通過nfs文件系統安裝完成
總結:如果不想使用nfs文件系統,需要在被共享主機卸載掉掛載目錄,才能進行關機操作,不然正常關機會卡住。
DNS輪詢的時候權重分配的不是很理想,可能刷新的時候,一直訪問的是一個IP地址。