搭建主从DNS、nfs、nginx
任务需求:
客户端通过访问 www.nihao.com 后,能够通过 dns 域名解析,访问到 nginx 服务中由 nfs 共享的首页文件,内容为:Very good, you have successfully set up the system. 各个主机能够实现时间同步,并且都开启防火墙来保证服务安装。
主机规划:
作用 | 系统 | IP | 主机名 | 软件 |
---|---|---|---|---|
web 服务器 | redhat9.5 | 192.168.72.8 | web | nginx |
nfs 服务器 | redhat9.5 | 192.168.72.9 | nfs | nfs-utils |
DNS 主服务器 | redhat9.5 | 192.168.72.18 | dns1 | bind |
DNS 从服务器 | redhat9.5 | 192.168.72.28 | dns2 | bind |
客户端 | redhat9.5 | 192.168.72.7 | client | bind-utils |
一、修改IP地址和主机名:
web服务器:
[root@localhost ~]# hostnamectl hostname web
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.72.8/24 ipv4.gateway 192.168.72.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160
nfs服务器:
[root@localhost ~]# hostnamectl hostname nfs
[root@localhost ~]# nmcli connection modify ens160 ipv4.addresses 192.168.72.9/24 ipv4.gateway 192.168.72.2 ipv4.dns 223.5.5.5 ipv4.method manual connection.autoconnect yes
[root@localhost ~]# nmcli connection up ens160
DNS主服务器:
[root@localhost ~]# hostnamectl hostname dns1
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.72.18/24 ipv4.gateway 192.168.72.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160
DNS从服务器:
[root@localhost ~]# hostnamectl hostname dns2
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.72.28/24 ipv4.gateway 192.168.72.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160
客户端:
[root@localhost ~]# hostnamectl hostname client
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.72.7/24 ipv4.gateway 192.168.72.2 ipv4.dns "192.168.72.18 192.168.72.28" connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160
二、配置nfs服务器:
下载nfs服务:
[root@nfs ~]# dnf install nfs-utils -y
放行http、nfs服务,关闭selinux。
[root@nfs ~]# setenforce 0
[root@nfs ~]# firewall-cmd --permanent --add-service=http
[root@nfs ~]# firewall-cmd --permanent --add-service=nfs
[root@nfs ~]# firewall-cmd --reload
创建文件并共享给nginx服务器
[root@nfs ~]# mkdir /nfs/data -p
[root@nfs ~]# vim /etc/exports
[root@nfs ~]# cat /etc/exports
/nfs/data 192.168.72.8(rw)
启动服务检查是否暴露,并给/nfs添加写的权限
[root@nfs ~]# systemctl restart nfs-server.service
[root@nfs ~]# showmount -e 192.168.72.9
[root@nfs ~]# chmod o+w /nfs/ -R
三、配置Web服务
下载nginx、nfs服务
[root@web ~]# dnf install nginx -y
[root@web ~]# dnf install nfs-utils -y
放行http,nfs服务 关闭selinux
[root@web ~]#firewall-cmd --permanent --add-service=http
[root@web ~]#firewall-cmd --reload
[root@web ~]#firewall-cmd --permanent --add-service=nfs
[root@web ~]#firewall-cmd --reload
[root@web ~]# setenforce 0
创建一个nihao.conf的配置文件,写入www.nihao.com的配置服务
[root@web conf.d]# cat nihao.conf
server{
server_name www.nihao.com ;
root /var/www/nihao;
}
挂载到nfs,并创建页面内容
[root@web conf.d]# mount -t nfs 192.168.72.9:/nfs/data /var/www/
[root@web conf.d]# mkdir -p /var/www/nihao
[root@web conf.d]# echo " Very good, you have successfully set up the system. " > /var/www/nihao/index.html
四、DNS主服务器配置
安装DNS服务
[root@dns1 ~]# dnf install bind -y
修改主配置文件
[root@dns1 ~]# cat /etc/named.conf
options {
listen-on port 53 { 192.168.72.18; };
directory "/var/named";
};
zone "nihao.com" IN {
type master;
file "nihao.com";
};
配置区域数据文件
[root@DNS-one ~]# cat /var/named/nihao.com
$TTL 1D
@ IN SOA @ admin.nihao.com. (0 1 1 1 1)
IN NS ns1
IN NS ns2
ns1 IN A 192.168.72.18
ns2 IN A 192.168.72.28
www IN A 192.168.72.8
放行dns服务关闭selinux,启动服务
[root@dns1 ~]# setenforce 0
[root@dns1 ~]# firewall-cmd --permanent --add-service=dns
[root@dns1 ~]# firewall-cmd --reload
[root@dns1 ~]# systemctl restart named
五、DNS从服务器配置
安装DNS服务
[root@dns2 ~]# dnf install bind -y
修改主配置文件
[root@dns2 ~]# cat /etc/named.conf
options {
listen-on port 53 { 192.168.72.28; };
directory "/var/named";
};
zone "nihao.com" IN {
type slave;
masters { 192.168.72.18; };
file "slaves/nihao.com";
};
放行防火墙,关闭selinux,开启服务
[root@dns2 ~]# firewall-cmd --permanent --add-service=dns
[root@dns2 ~]# firewall-cmd --reload
[root@dns2 ~]# setenforce 0
[root@dns2 ~]# systemclt restart named