DNS(Domain Name System,域名系統),萬維網上作爲域名和IP地址相互映射的一個分佈式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。通過域名,最終得到該域名對應的IP地址的過程叫做域名解析(或主機名解析)。DNS協議運行在UDP協議之上,使用端口號53。在RFC文檔中RFC 2181對DNS有規範說明,RFC 2136對DNS的動態更新進行說明,RFC 2308對DNS查詢的反向緩存進行說明
一臺服務端:
1.安裝軟件包httpd
2.書寫一個頁面文件(先 mkdir /var/ww/qq /var/www/baidu…)
echo ‘
NSD1809 Web’ > /var/www/qq/index.html
echo ‘
NSD1809 Web’ > /var/www/baidu/index.html
(
字體 字體滾動 字體顏色 )
@1vim /etc/httpd/conf.d/nsd.conf (子配置文件)
<VirtualHost IP地址:端口>
ServerName 此站點的DNS名稱
DocumentRoot 此站點的網頁根目錄
@2vim /etc/httpd/conf.d/nsd01.conf(子配置文件)
其他系統不能訪問這個目錄的內容
<Directory /var/www/qq>
Require all denied|granted
Require ip IP或網段地址 … …
<Directory /var/www/baidu>
Require all denied|granted #拒絕所有 | 允許所有
Require ip 172.25.0.10 #僅允許172.25.0.10進行訪問
)新建目錄 /webroot,作爲此站點新的網頁目錄
2)修改虛擬Web主機配置文件,指定新的網頁目錄
3)修改Web訪問控制配置文件,允許所有人訪問
重起服務
systemctl restart httpd
5) 修改SELinux策略,安全上下文值(標籤值)
• 方式1:參照標準目錄,重設新目錄的屬性
– chcon [-R] --reference=模板目錄 新目錄
chcon -R --reference=/var/www/ /webroot
ls -Zd /var/www/
ls -Zd /webroot/
3.重起服務
systemctl restart httpd
systemctl enable httpd
訪問:vim /etc/hosts (最高優先級) …沒有域名解析時,解析IP作用(本地解析)
測試: firefox www.qq.com
firefox www.baidu.com
域名測試: vim /etc/resolv.conf (第二優先級)
nameserver IP(服務端)
nslookup www.qq.com
一臺做搭建域名服務:
1.安裝軟件包
yum -y install bind-chroot bind
2.修改配置文件/etc/named.conf
cp /etc/named.conf /root/named.bak
vim /etc/named.conf
options {
directory “/var/named”; #指定地址庫文件路徑
};
zone "qq.com IN { #指定本機負責解析的域名
type master; #本機爲權威主DNS服務器
file “qq.com.zone”; #指定地址庫文件名字
};
3.創建地址庫文件/var/named/tedu.cn.zone
cd /var/named
cp -p named.localhost qq.com.zone #保持屬性不變
vim qq.com.zone
#沒有以點結尾,默認補全qq.com.
qq.com. NS svr7 #qq.com.區域有svr7負責
svr7 A 192.168.4.7 #svr7的IP地址爲192.168.4.7
www A 1.1.1.1
Split分離解析(視圖解析)
vim /etc/named.conf
options {
directory “/var/named”;
};
view nsd {
match-clients { 192.168.4.207; };
zone “qq.com” {
type master;
file “qq.com.zone”;
};
zone “baidu.com” {
type master;
file “baidu.com.zone”;
};
};
view other {
match-clients { any; };
zone “qq.com” {
type master;
file “qq.com.other”;
};
zone “baidu.com” {
type master;
file “baidu.com.other”;
};
};
3.創建地址庫文件/var/named/qq.com.zone /baidu.com.zone qq.com.other baidu.com.other(有幾個地址庫就創建幾個)
cd /var/named
cp -p named.localhost qq.com.zone #保持屬性不變
ls -l qq.com.zone
vim qq.com.zone
#沒有以點結尾,默認補全tedu.cn.
qq.com. NS svr7 #tedu.cn.區域有svr7負責
svr7 A 192.168.4.7 #svr7的IP地址爲192.168.4.7
www A 1.1.1.1
ftp A 2.2.2.2
…
4.重起named服務
systemctl restart named
多區域的DNS服務器
虛擬機A:
1.修改配置文件/etc/named.conf
…
zone “qq.com” IN {
type master;
file “qq.com.zone”;
};
3.創建地址庫文件/var/named/qq.com.zone
cd /var/named
cp -p tedu.cn.zone qq.com.zone (-p:表示繼承文件屬性)
vim qq.com.zone
qq.com. NS svr7
svr7 A 192.168.4.7
www A 3.3.3.3
ftp A 4.4.4.4
4.重起named服務
systemctl restart named
5.客戶端驗證
1.指定DNS服務器位置
echo nameserver 192.168.4.7 > /etc/resolv.conf
2.域名解析測試
nslookup www.qq.com
nslookup ftp.qq.com
特殊的解析記錄,以tedu.cn.zone爲例
一 DNS的負載均衡,輪詢的相同解析記錄(瞭解)
vim /var/named/tedu.cn.zone
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.1
www A 192.168.4.2
www A 192.168.4.3
www A 192.168.4.4
ftp A 2.2.2.2
[root@svr7 /]# !sys
systemctl restart named
二 泛域名解析
[root@svr7 /]# vim /var/named/tedu.cn.zone
…
-
A 10.11.12.14
systemctl restart named
客戶端驗證:
nslookup wwwwww.tedu.cn
nslookup hahaxixi.tedu.cn
三 解析記錄的別名(瞭解)
[rovim /var/named/tedu.cn.zone
…
tts CNAME ftp #tts解析結果與ftp解析結果一致
systemctl restart named
客戶端驗證
nslookup tts.tedu.cn
四 有規律的泛域名解析
pc1.tedu.cn ----> 192.168.10.1
pc2.tedu.cn ----> 192.168.10.2
pc3.tedu.cn ----> 192.168.10.3
…
pc50.tedu.cn ----> 192.168.10.50
內置函數: $GENERATE 產生連續的數字
vim /var/named/tedu.cn.zone
…
A 192.168.10.$
systemctl restart named
客戶端驗證
nslookup pc1.tedu.cn
nslookup pc50.tedu.cn
DNS服務器常見的資源解析記錄都有那些?
NS解析記錄 A解析記錄 CNAME解析記錄
1.以webapp0.example.com部署Python頁面
cat /etc/httpd/conf.d/nsd01.conf #查看DocmentRoot
cd /var/www/baidu/
wget http://classroom.example.com/pub/materials/webinfo.wsgi
cat webinfo.wsgi
2.用戶方便的訪問(頁面跳轉/頁面的別名)
Alias 網絡路徑 本機實際路徑
vim /etc/httpd/conf.d/nsd01.conf
<VirtualHost *:80>
ServerName webapp0.example.com
DocumentRoot /var/www/baidu
Alias / /var/www/baidu/webinfo.wsgi
當客戶端直接訪問網頁文件根目錄時,將webinfo.wsgi呈現
systemctl restart httpd
3.安裝mod_wsgi軟件包,翻譯Python頁面代碼
yum -y install mod_wsgi
4.修改配置文件,進行翻譯Python頁面代碼
vim /etc/httpd/conf.d/nsd01.conf
<VirtualHost *:80>
ServerName webapp0.example.com
DocumentRoot /var/www/baidu
WsgiScriptAlias / /var/www/baidu/webinfo.wsgi
當客戶端直接訪問網頁文件根目錄時,將webinfo.wsgi呈現
systemctl restart httpd
Unix時間戳: 從1970-1-1 0:0:0到現在時間,所經歷的秒數
5.此虛擬主機偵聽在端口8909
Listen 8909 #配置httpd程序監聽8909端口
<VirtualHost *:8909> #虛擬web主機監聽8909
ServerName webapp0.example.com
DocumentRoot /var/www/baidu
WsgiScriptAlias / /var/www/baidu/webinfo.wsgi
6. SELinux非默認端口的開放
semanage port -l | grep http
semanage port -a -t http_port_t -p tcp 8909
-a:添加 -t:類型 -p:協議
systemctl restart httpd
7.驗證:
http://webapp0.example.com:8909
默認端口訪問優先級最高,默認端口不匹配,顯示第一個虛擬Web主機內容