LAMP+NFS+DNS搭建wordpress

架構簡介:
這裏其實就是使用的LAMP+NFS組合,將結構化數據存儲在mysql數據庫服務器中(例如論壇用戶數據,文字內容等等),非結構化數據(例如附件數據,多媒體文件)存儲在NFS服務器上的文件系統中;其具體架構爲:2臺web服務器,1臺NFS服務器,1臺mysql服務器,1臺DNS服務器;以下圖所示php

LAMP+NFS+DNS搭建wordpress
web服務器1:172.16.20.241,CentOS6
web服務器2:172.16.20.242,CentOS6
DNS服務器:172.16.20.244,CentOS6
mysql服務器:172.16.20.243,CentOS7
NFS服務器:172.16.20.245,CentOS7mysql

具體配置:
一、NFS服務器配置,172.16.20.245:web

[root@localhost ~]# yum install  nfs-utils -y
[root@localhost ~]# systemctl start nfs
[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# mkdir /web          // 建立一個目錄用於存放wordpress並導出
[root@localhost ~]# unzip wordpress-4.7.4-zh_CN.zip
[root@localhost ~]# cp -r wordpress 
[root@localhost ~]# vim /etc/exports
/web/wordpress    172.16.20.241(rw,no_root_squash) 172.16.20.242(rw,no_root_squash)    // 導出wordpress目錄,並設置root用戶容許訪問,由於必需要以root用戶的身份運行,才能安裝wordpress
[root@localhost ~]# chown -R :apache /web/wordpress      // 因爲wordpress用於httpd服務,所以apache用戶須要有此目錄的讀寫權限
[root@localhost ~]# chmod -R g+rw /web/wordpress
[root@localhost ~]# systemctl restart nfs        // 重啓服務使exports導出的目錄生效
[root@localhost ~]# showmount -e 172.16.20.245    //  使用此命令能夠查看目標主機已導出的目錄
Export list for 172.16.20.245:
/web/wordpress 172.16.20.242,172.16.20.241
[root@localhost ~]#

二、mysql服務器配置,172.16.20.243:sql

[root@localhost ~]# yum install mysql-server -y  //這裏使用rpm包簡易安裝,更專業的作法是使用二進制格式安裝,將mysql數據存放到一個單獨的磁盤中,便於管理和容災
[root@localhost ~]# mysql
mysql> create database web;     //建立wordpress用的數據庫
Query OK, 1 row affected (0.00 sec)

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> grant all privileges on web.* to 'user1'@'%' identified by 'redhat';     //給web數據庫受權一個專用用戶user1並設置密碼,這裏可能會有人想,直接用root用戶就好了;可是這樣是不安全的,並且rpm包安裝的mysql默認是禁止root用戶遠程登陸,而且直接以root用戶登錄數據庫也很是的不安全
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;    //手動刷新權限表,使新做出的更改當即生效
Query OK, 0 rows affected (0.00 sec)

mysql> select host,user,password from user;
+-----------------------+-------+-------------------------------------------+
| host                  | user  | password                                  |
+-----------------------+-------+-------------------------------------------+
| localhost              | root  |                                           |
| localhost.localdomain | root  |                                           |
| 127.0.0.1             | root  |                                           |
| localhost             |       |                                           |
| localhost.localdomain |       |                                           |
| %                     | user1 | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |
+-----------------------+-------+-------------------------------------------+
6 rows in set (0.00 sec)
// 這裏能夠看出咱們新建的user1用戶已經生效了
mysql>

三、DNS服務器配置,172.16.20.244:數據庫

[root@localhost ~]# yum install bind -y
[root@localhost ~]# vim /etc/named.ca
修改如下選項
listen-on port 53 { 172.16.20.244; 127.0.0.1; };
allow-query { any; };
dnssec-enable no;
dessec-validation no;
[root@localhost ~]# vim /etc/named.rfc1912.zones
添加以下行
zone "gumpti.com" IN {
              type master;
                            file "gumpti.com.zone";
};
//  添加一個主區域
[root@localhost ~]# vim /var/named/gumpti.com.zone
$TTL 1D
$ORIGIN gumpti.com.
@             IN              SOA             ns1.gumpti.com.     admin.gumpti.com   (
                                                                                                          2017120201
                                                                                                            1M
                                                                                                            5M
                                                                                                            7D
                                                                                                            1D )
                                 IN              NS               ns1.gumpti.com.
                                 IN              NS               www.gumpti.com.
ns1           IN              A                  172.16.20.244
www         IN              A                  172.16.20.241
www         IN              A                  172.16.20.242
[root@localhost ~]# service named start
[root@localhost ~]# dig -t A www.gumpti.com @172.16.20.244         //查看A記錄是否生效

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.3 <<>> -t A www.gumpti.com @172.16.20.244
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 215
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.gumpti.com.            IN  A

;; ANSWER SECTION:
www.gumpti.com.     86400   IN  A   172.16.20.241
www.gumpti.com.     86400   IN  A   172.16.20.242

;; AUTHORITY SECTION:
gumpti.com.     86400   IN  NS  www.gumpti.com.
gumpti.com.     86400   IN  NS  ns1.gumpti.com.

;; ADDITIONAL SECTION:
ns1.gumpti.com.     86400   IN  A   172.16.20.244

;; Query time: 24 msec
;; SERVER: 172.16.20.244#53(172.16.20.244)
;; WHEN: Wed Dec 06 15:11:42 CST 2017
;; MSG SIZE  rcvd: 123

// 再執行一次dig命令查看兩條A記錄的輪詢效果是否生效
[root@localhost ~]# dig -t A www.gumpti.com @172.16.20.244 

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.3 <<>> -t A www.gumpti.com @172.16.20.244
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27457
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.gumpti.com.            IN  A

;; ANSWER SECTION:
www.gumpti.com.     86400   IN  A   172.16.20.242
www.gumpti.com.     86400   IN  A   172.16.20.241

;; AUTHORITY SECTION:
gumpti.com.     86400   IN  NS  ns1.gumpti.com.
gumpti.com.     86400   IN  NS  www.gumpti.com.

;; ADDITIONAL SECTION:
ns1.gumpti.com.     86400   IN  A   172.16.20.244

;; Query time: 0 msec
;; SERVER: 172.16.20.244#53(172.16.20.244)
;; WHEN: Wed Dec 06 15:13:24 CST 2017
;; MSG SIZE  rcvd: 123

[root@localhost ~]#

四、配置WEB服務器1,172.16.20.241:apache

[root@localhost ~]# showmount -e 172.16.20.245
Export list for 172.16.20.245:
/web/wordpress 172.16.20.242,172.16.20.241
[root@localhost /]# mkdir /www/wordpress -pv
[root@localhost ~]# mount -t nfs 172.16.20.245:/web/wordpress /www/wordpress/  
//  掛載NFS服務器172.16.20.245導出的/web/wordpress到本地的/www/wordpress目錄
[root@localhost ~]# yum install httpd php php-mysql -y
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
修改以下行
DocumentRoot "/www/wordpress/"
<Directory "/www/wordpress/">
[root@localhost ~]# cp /www/wordpress/wp-config-sample.php /www/wordpress/wp-config.php
[root@localhost ~]# vim /www/wordpress/wp-config.php
// 修改wordpress的配置文件
define('DB_NAME', 'web');     // 指定wordpress使用的數據庫爲web數據庫
define('DB_USER', 'user1');   // 指定wordpress使用的鏈接數據庫的用戶爲user1
define('DB_PASSWORD', 'redhat');   // 指定wordpress使用的用戶user1的密碼
define('DB_HOST', '172.16.20.243');   // 指定wordpress使用的數據庫的服務器IP
[root@localhost ~]# service httpd start

五、配置WEB服務器2,172.16.20.242:vim

[root@localhost ~]# showmount -e 172.16.20.245
Export list for 172.16.20.245:
/web/wordpress 172.16.20.242,172.16.20.241
[root@localhost /]# mkdir /www/wordpress -pv
[root@localhost ~]# mount -t nfs 172.16.20.245:/web/wordpress /www/wordpress/  
//  掛載NFS服務器172.16.20.245導出的/web/wordpress到本地的/www/wordpress目錄
[root@localhost ~]# yum install httpd php php-mysql -y
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
修改以下行
DocumentRoot "/www/wordpress/"
<Directory "/www/wordpress/">
[root@localhost ~]# service httpd start
// 已經在WEB1上修改過wordpress的配置文件,這裏WEB1和WEB2都是掛載的NFS服務器上的wordpress目錄,使用的同一份wordpress文件

六、查看配置效果
將客戶端主機的DNS服務器設置爲172.16.20.244
而後在瀏覽器中輸入地址www.gumpti.com
LAMP+NFS+DNS搭建wordpress
成功顯示wordpress界面,會提示須要安裝,安裝並註冊一個管理員帳號,而後進入管理界面(實驗中我註冊的管理員帳號爲181)
LAMP+NFS+DNS搭建wordpress
點擊「用戶」按鈕,添加一個用戶(實驗中我添加的是157)
而後發佈幾篇文章
LAMP+NFS+DNS搭建wordpress
保存後登錄另外一臺服務器172.16.20.242就能夠查看到wordpress頁面中有181用戶發佈的文章
LAMP+NFS+DNS搭建wordpress瀏覽器

也可使用新添加的用戶157登錄,也能夠看到文章的發佈安全

以上在WEB1上安裝了wordpress併發布了文章,經過WEB2能夠成功訪問並看到相同的內容,而且可使用不一樣的帳號在WEB2中登錄,說明實驗已經成功。服務器

總結:LAMP+NFS的架構比較簡單,但在實際生產環境中使用的並很少,更實用的是分佈式文件系統而不是NFS,NFS性能有限,只是在小公司在過渡期中使用。這次實驗作的比較匆忙:一、關於NFS導出的wordpress權限問題並無作太多的研究二、在WEB2中登錄後,網頁地址依舊會跳轉到WEB1,這裏是尚未考究出緣由,須要繼續學習三、DNS也只配置了正向解析域,沒有配置反向解析域後續再來繼續填坑。寫的比較潦草,若有遺漏錯誤和爭議之處,歡迎你們的批評指正和討論,謝謝。

相關文章
相關標籤/搜索