LAMP配置NFS頁面共享,autofs實現掛載,DNS實現名稱解析,純手動操作
0.實驗架構:
共6臺服務器
分工如下:
服務器 |
職責 |
IP地址 |
Centos版本 |
描述 |
A |
DNS |
172.18.7.70 |
7 |
|
B |
Apache |
172.18.7.71 |
7 |
httpd+php-fpm |
C |
Apache |
172.18.7.72 |
7 |
httpd+php-fpm |
D |
MySQL |
172.18.7.73 |
7 |
|
E |
NFS |
172.18.7.74 |
7 |
共享wordpress程序 |
F |
Client |
172.18.7.61 |
6 |
DNS指向Server A |
先準備好所有服務器
所有軟件采用yum安裝方式安裝.
1.MySQL服務器(Server D)
安裝mariaDB並創建數據庫wpdb.以及授權兩臺主機的訪問權限.
]# yum install mariadb-server -y ]# systemctl start mariadb ]# mysql MariaDB [(none)]> create database wpdb; MariaDB [(none)]> grant all on wpdb.* to ‘wpuser‘@‘172.18.7.71‘ identified by ‘wppass‘; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> grant all on wpdb.* to ‘wpuser‘@‘172.18.7.72‘ identified by ‘wppass‘; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> quit
2.NFS服務器(Server E)
NFS服務一般會被包含在CentOS安裝程序中,默認被安裝.
查看是否已安裝
]# rpm -q nfs-utils
如果沒有安裝則使用yum安裝
]# yum -y install nfs-utils
啟動服務
]# systemctl start nfs.service
查看端口
]# ss -tnlp
因為是內核直接監聽2049端口所以只顯示 *:2049,但不顯示監聽端口的應用.
創建共享目錄,並創建測試文件
]# mkdir /httpdata ]# touch /httpdata/testfile
NFS默認是把客戶端用戶ID映射到本地用戶ID來識別用戶的,所以為了apache服務器能夠擁有對NFS目錄的正常訪問權限,httpd服務yum安裝默認會創建id為48的apache賬號,所以這裏給目錄設置一個id為48的acl權限.
]# setfacl -Rm u:48:rwx /httpdata/
添加配置
]# vim /etc/exports /httpdata 172.18.7.71/16(rw) 172.18.7.72/16(rw)
使目錄生效
]# exportfs -r
此時如果遠程主機用root登陸的話,對此目錄是只讀的,因為安全起見,root用戶默認會被壓縮映射為nfsnobody用戶.
確保rpcbind服務已開啟
]# systemctl status rpcbind
最後把wordpress程序放進共享目錄.
]# tar xvf wordpress-4.9.1-zh_CN.tar.gz ]# cp wordpress/* /httpdata/ -R
修改wordpress配置文件
]# cp wp-config-sample.php wp-config.php ]# sed -i ‘s/database_name_here/wpdb/g‘ wp-config.php ]# sed -i ‘s/username_here/wpuser/g‘ wp-config.php ]# sed -i ‘s/password_here/wppass/g‘ wp-config.php ]# sed -i ‘s/localhost/172.18.7.73/g‘ wp-config.php
建立php測試頁面
]# cd /httpdata/ ]# vim phpinfo.php <?php phpinfo(); ?>
3.Apache服務器(Server B,Server C)
測試NFS共享
]# showmount -e 172.18.7.74 Export list for 172.18.7.74: /httpdata 172.18.7.72/16,172.18.7.71/16
創建NFS共享目錄的掛載點,並掛載
]# mkdir -p /web/html ]# mount -t nfs 172.18.7.74:/httpdata /web/html/ ]# ll /web/html/ total 0 -rw-r--r-- 1 root root 0 Feb 4 04:36 aaa
安裝httpd和php
]# yum install httpd php-fpm php-mysql -y
啟動服務並測試httpd是否正常工作.
]# systemctl start httpd ]# curl 172.18.7.71
顯示歡迎頁面為正常.
修改httpd配置文件
]# vim /etc/httpd/conf/httpd.conf DocumentRoot "/web/html" DirectoryIndex index.php index.html <Directory "/web/html"> Options None AllowOverride None Require all granted </Directory>
創建fcgi.conf配置文件,用於讓httpd支持php
]# vim /etc/httpd/conf.d/fcgi.conf ProxyRequests off ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/web/html/$1
第一行為關閉默認正向代理,使用fcgi反向代理
第二行規定只把.php後綴的內容轉發到後端.此處的IP地址為php所在主機地址,可以是遠程主機.
修改php-fpm配置文件
]# vim /etc/php-fpm.d/www.conf listen = 0.0.0.0:9000 listen.owner = nobody listen.group = nobody listen.mode = 0666
重啟服務
]# systemctl start php-fpm ]# systemctl restart httpd
在瀏覽器上測試
http://172.18.7.71/phpinfo.php
顯示php配置畫面則為成功.
安裝wordpress
訪問172.18.7.71或者172.18.7.72中任意一臺,進行wordpress安裝配置
http://172.18.7.71
按照說明填寫好內容點擊左下角的安裝wordpress
安裝完成,即可通過任意一臺Apache服務器訪問到內容相同的wordpress站點.
4.DNS服務器(Server A)
安裝DNS服務
]# yum install bind -y
修改主配置文件
簡單配置,可以直接註釋掉幾行.
]# vim /etc/named.conf //listen-on port 53 { 127.0.0.1; }; //allow-query { localhost; }; //dnssec-enable yes; //dnssec-validation yes;
添加正向解析
]# vim /etc/named.rfc1912.zones zone "opsnote.com" IN { type master; file "opsnote.com.zone"; }; ]# vim /var/named/opsnote.com.zone $TTL 3600 @ IN SOA ns1 admin ( 0 1H 10M 3D 1D) IN NS ns1 ns1 IN A 172.18.7.70 www IN A 172.18.7.71 www IN A 172.18.7.72
安全起見,要設置區域數據庫文件的屬組為named.權限為640.
]# chown :named /var/named/opsnote.com.zone ]# chmod 640 /var/named/opsnote.com.zone ]# ll /var/named/opsnote.com.zone -rw-r----- 1 root named 136 Feb 6 18:38 /var/named/opsnote.com.zone
檢查配置
]# named-checkconf ]# cd /var/named ]# named-checkzone opsnote.com opsnote.com.zone zone opsnote.com/IN: loaded serial 0 OK
檢查完成沒有問題.
測試
]# dig -t A www.opsnote.com @172.18.7.70 ;; ANSWER SECTION: www.opsnote.com. 3600 IN A 172.18.7.71 www.opsnote.com. 3600 IN A 172.18.7.72
成功.
5.客戶端(主機 F)
為了使用DNS進行輪詢域名解析,需要將域名的DNS解析設置指向我們自己的DNS服務器.
修改本機DNS為172.18.7.70
]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DNS1=172.18.7.70
重啟網絡服務
]# service network restart
測試
]# ping www.opsnote.com PING www.opsnote.com (172.18.7.71) 56(84) bytes of data. 64 bytes from 172.18.7.71: icmp_seq=1 ttl=64 time=0.240 ms ]# ping www.opsnote.com PING www.opsnote.com (172.18.7.72) 56(84) bytes of data. 64 bytes from 172.18.7.72: icmp_seq=1 ttl=64 time=0.288 ms
多次重復嘗試,會得到兩個解析結果,172.18.7.71和172.18.7.72.
至此可以通過圖形界面的瀏覽器順利訪問www.opsnote.com了.
LAMP配置NFS頁面共享,autofs實現掛載,DNS實現名稱解析,純手動操作