搭建主从服务器

devtools/2025/3/18 9:20:38/

任务需求

客户端通过访问 www.nihao.com 后,能够通过 dns 域名解析,访问到 nginx 服务中由 nfs 共享的首页文件,内容为:Very good, you have successfully set up the system. 各个主机能够实现时间同步,并且都开启防火墙来保证服务安装。

主机规划:

(注:上述主机均配置了本地仓库)

1.分别修改主机名和IP地址

web:

[root@localhost ~]# hostnamectl hostname web
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.10.8/24 ipv4.gateway 192.168.10.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 c modify ens160 ipv4.method manual ipv4.addresses 192.168.10.9/24 ipv4.gateway 192.168.10.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160

dns1:

[root@localhost ~]# hostnamectl hostname dns1
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.10.18/24 ipv4.gateway 192.168.10.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160

dns2:

[root@localhost ~]# hostnamectl hostname dns2
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.10.28/24 ipv4.gateway 192.168.10.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160

client:

[root@localhost ~]# hostnamectl hostname client
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.10.7/24 ipv4.gateway 192.168.10.2 ipv4.dns "192.168.10.18 192.168.10.28" connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160

关闭几台服务器的selinux

[root@web ~]# sed -i 's/SELINUX=enforcing/SELINUX=Permissive/g' /etc/selinux/config

 2.配置NFS服务器

2.1安装NFS软件

[root@nfs ~]# mount /dev/sr0 /mnt/
[root@nfs ~]# dnf install nfs-utils -y

2.2启动NFS服务

[root@nfs ~]# systemctl start nfs-server
[root@nfs ~]# systemctl enable nfs-server

2.3在防火墙中放行服务

[root@nfs ~]# firewall-cmd --permanent --add-service=nfs
success
[root@nfs ~]# firewall-cmd --reload
success

2.4配置NFS服务

在nfs主机上创建共享目录,暴露给web端,并赋予写的权限(w)

[root@nfs ~]# mkdir /nfs/data -p
[root@nfs ~]# cat /etc/exports
/nfs/data 192.168.10.8(rw)
[root@nfs ~]# systemctl restart nfs-server.service 
[root@nfs ~]# showmount -e 192.168.10.9
[root@nfs ~]# chmod o+w /nfs/ -R

 3.配置web服务器

3.1安装nginx,nfs软件

[root@web ~]# mount /dev/sr0 /mnt/
[root@web ~]# dnf install nginx nfs-utils -y

 3.2在防火墙中放行服务

[root@web ~]# firewall-cmd --permanent --add-service=nfs
success
[root@web ~]# firewall-cmd --permanent --add-service=http
success
[root@web ~]# firewall-cmd --reload
success

 3.3创建nihao.conf的配置文件

[root@web ~]# cat /etc/nginx/conf.d/nihao.conf 
server {access_log /var/log/nginx/access.log;error_log /var/log/nginx/error.log;server_name www.nihao.com;root /var/www/nihao;
}

3.4创建nfs的挂载目录

[root@web ~]# mkdir /var/www/nihao -p

3.5执行挂载

[root@web ~]# mount -t nfs 192.168.10.9:/nfs/data /var/www/nihao/

3.6在nfs端写入www.nihao.com的首页文件

[root@nfs ~]# echo Very good, you have successfully set up the system. > /nfs/data/index.html

3.7在web端查看

[root@web ~]# cat /var/www/nihao/index.html 
Very good, you have successfully set up the system.

3.8重启nginx服务

[root@web ~]# systemctl restart nginx

 4.配置dns服务端

4.1在两台dns服务端下载dns

[root@dns1 ~]# mount /dev/sr0 /mnt/
[root@dns1 ~]# dnf install bind -y

4.2在两台dns服务端放行服务

[root@dns1 ~]# firewall-cmd --permanent --add-service=dns
success
[root@dns1 ~]# firewall-cmd --reload
success

4.3在dns1服务端修改主配置文件

[root@dns1 ~]# cat /etc/named.conf 
options {listen-on port 53 { 192.168.10.18; };directory 	"/var/named";allow-query     { any; };
};
zone "nihao.com" IN {type master;file "nihao.com";
};

 4.4在dns1服务端配置区域文件

[root@dns1 ~]# cat /var/named/nihao.com 
$TTL    1D
@       IN      SOA     @       admin.nihao.com. (0  1D  2H   3W  2D)IN      NS      ns1IN      NS      ns2
ns1     IN      A       192.168.10.18
ns2     IN      A       192.168.10.28
www     IN      A       192.168.10.8

4.5在dns2服务端修改主配置文件

[root@dns2 ~]# cat /etc/named.conf 
options {listen-on port 53 { 192.168.10.28; };directory       "/var/named";
};
zone "nihao.com" IN {type slave;masters { 192.168.10.18; };file "slaves/nihao.com";
};

4.6检查配置语句

[root@dns1 ~]# named-checkconf
[root@dns1 ~]# named-checkzone nihao.com /var/named/nihao.com
zone nihao.com/IN: loaded serial 0
OK

4.7在两台dns服务端重启服务

[root@dns1 ~]# systemctl restart named

 4.8测试dns解析

dns1:

[root@dns1 ~]# dig -t NS nihao.com @192.168.10.18
[root@dns1 ~]# dig -t A nihao.com @192.168.10.18

dns2:

[root@dns2 ~]# dig -t NS nihao.com @192.168.10.28
[root@dns2 ~]# dig -t A nihao.com @192.168.10.28

5.客户端测试

[root@client ~]# curl www.nihao.com
Very good, you have successfully set up the system.

附:

测试dns解析截图:

dns1:

dns2:


http://www.ppmy.cn/devtools/168031.html

相关文章

JVM常用概念之FPU溢出

问题 当自己的代码根本没有浮点或矢量运算,JVM在x86生成的机器代码为什么会用到XMM 寄存器? 基础知识 FPU 和矢量单元在现代 CPU 中随处可见,在许多情况下,它们为 FPU 特定的操作提供了一组备用寄存器。例如,Intel x86_64 中的…

Android Room 框架测试模块源码深度剖析(五)

Android Room 框架测试模块源码深度剖析 一、引言 在 Android 开发中,数据持久化是一项重要的功能,而 Android Room 框架为开发者提供了一个强大且便捷的方式来实现本地数据库操作。然而,为了确保 Room 数据库操作的正确性和稳定性&#xf…

K8S学习之基础三十四:K8S之监控Prometheus部署pod版

使用 Kubernetes Pod 的方式部署 Prometheus 是一种常见的方法,尤其是在容器化和微服务架构中。以下是详细的步骤: 1. 创建命名空间(可选) 为了方便管理,可以为 Prometheus 创建一个单独的命名空间。 yaml 复制 a…

Spark 优化作业性能以及处理数据倾斜问题

1. 如何优化Spark作业的性能? 优化Spark作业性能可以从多个方面入手,以下是一些关键的优化策略: (1)资源调优 增加Executor数量:更多的Executor可以并行处理更多任务。 增加Executor内存:通过…

Zabbix安装(保姆级教程)

Zabbix 是一款开源的企业级监控解决方案,能够监控网络的多个参数以及服务器、虚拟机、应用程序、服务、数据库、网站和云的健康状况和完整性。它提供了灵活的通知机制,允许用户为几乎任何事件配置基于电子邮件的告警,从而能够快速响应服务器问题。Zabbix 基于存储的数据提供…

provide/inject源码实现

在 Vue 3 中,provide 和 inject 是通过 Vue 的响应式系统和组件实例机制实现的,底层是依赖 Vue 3 中的 Proxy 和 Reactive 来实现跨层级的数据传递和响应式绑定。以下是一个简化版的实现逻辑,帮助理解 Vue 3 中 provide 和 inject 是如何实现…

论文阅读:Deep Hybrid Camera Deblurring for Smartphone Cameras

今天介绍一篇 ACM SIGGRAPH 2024 的文章,关于手机影像中的去模糊的文章。 Deep Hybrid Camera Deblurring for Smartphone Cameras Abstract 手机摄像头尽管取得了显著的进步,但由于传感器和镜头较为紧凑,在低光环境下的成像仍存在困难&am…

【eNSP实战】基本ACL实现网络安全

拓扑图 要求: PC3不允许访问其他PC和Server1PC2允许访问Server1服务器,不允许其他PC访问各设备IP配置如图所示,这里不做展示 AR1接口vlan配置 vlan batch 10 20 30 # interface Vlanif10ip address 192.168.1.254 255.255.255.0 # inter…