1. 程式人生 > >LAMP配置NFS頁面共享,autofs實現掛載,DNS實現名稱解析,純手動操作

LAMP配置NFS頁面共享,autofs實現掛載,DNS實現名稱解析,純手動操作

pre rest aaa 查看 soa nss 簡單配置 tor 代理

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實現名稱解析,純手動操作