搭建主从DNS、nfs、nginx

发布于:2025-03-23 ⋅ 阅读:(28) ⋅ 点赞:(0)

任务需求:

客户端通过访问 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