一、实验内容
现有主机 node01 和 node02,完成如下需求:
1、在 node01 主机上提供 DNS 和 WEB 服务
2、dns 服务提供本实验所有主机名解析
3、web服务提供 www.rhce.com 虚拟主机
4、该虚拟主机的documentroot目录在 /nfs/rhce 目录
5、该目录由 node02 主机提供的NFS服务共享
6、该目录可以通过autofs服务实现自动挂载
7、所有服务应该在重启之后依然可以正常使用
以下是实验内容分析图:
二、实验步骤
1、实验所需软件包
根据实验内容创建两台虚拟机,node1虚拟主机192.168.2.135为主服务器,node2虚拟主机192.168.2.136为从服务器,两台虚拟机的防火墙、SELINUX均保持开启状态。
node1和node2所需软件包:(用dnf或yum进行下载)
httpd bind bind-utils nfs-utils autofs
2、两台虚拟机中所需编写的文件
node1中编写vhost.conf文件(路径:/etc/httpd/conf.d/vhost.conf)
<directory /nfs/rhce>
allowoverride none
require granted
</directory><virtualhost 192.168.2.135:80>
documentroot /nfs/rhce
servername www.rhce.com
</virtualhost>
node1中添加本地解析(路径:/etc/hosts)
192.168.2.135 www.rhce.com
node1中的name.conf文件配置(路径:/etc/name.d)
options {listen-on port 53 { 192.168.2.135; };directory "/var/named";
};
zone "rhce.com" IN {type master;file "named.rhce";
};
node1中的named.rhce文件配置(路径:/etc/var/named/named.rhce)
$TTL 1D
@ IN SOA @ admin.rhce.com. (20240711011111)IN NS ns.rhce.com.
ns IN A 192.168.2.135
www IN A 192.168.2.135
node2中的named.conf文件配置(/etc/name.conf)
options {
listen-on port 53 { 192.168.2.136; };directory "/var/named";
};
zone "rhce.com" IN {type slave;masters{ 192.168.2.135; };file "slaves/named.rhce";
};
3、步骤关键代码
创建共享目录文件
[root@localhost ~]# mkdir /nfs/rhce
[root@localhost ~]# echo welcome to rhce > /nfs/rhce/index.html
防火墙放行
[root@localhost ~]# firewall-cmd --permanent --add-service=dns
success
[root@localhost ~]# firewall-cmd --permanent --add-service=http
success
[root@localhost ~]# firewall-cmd --permanent --add-service=nfs
success
[root@localhost ~]# firewall-cmd --permanent --add-service=rpc-bind
success
[root@localhost ~]# firewall-cmd --permanent --add-service=mountd
success
[root@localhost ~]# firewall-cmd --reload
success
autofs服务实现自动挂载:
[root@localhost~]# mount 192.168.244.135:/nfs/rhce /rhce
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
192.168.2.135:/nfs/rhce 70G 6.9G 64G 10% /rhce
所有服务应该在重启之后依然可以正常使用:
[root@localhost ~]# systemctl enable named
[root@localhost ~]# systemctl enable rpcbind
[root@localhost ~]# systemctl enable httpd
[root@localhost ~]# systemctl enable nfs-server
三、实验测试
[root@localhost named]# setsebool -P httpd_use_nfs 1
[root@localhost named]# dig -t A www.rhce.com
; <<>> DiG 9.16.23-RH <<>> -t A www.rhce.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63068
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 7efdee07e124353801000000668ea9127b048955c5c69d8c (good)
;; QUESTION SECTION:
;www.rhce.com. IN A
;; ANSWER SECTION:
www.rhce.com. 86400 IN A 192.168.2.135
;; Query time: 4 msec
;; SERVER: 192.168.2.135#53(192.168.2.135
;; WHEN: Wed Jul 11 15:36:26 EDT 2024
;; MSG SIZE rcvd: 85
[root@localhost ~]# curl www.rhce.com
welcom to rhce