系统服务综合实验(dns服务,nfs服务)

题目:现有主机 node01 和 node02,完成如下需求:
                1、在 node01 主机上提供 DNS 和 WEB 服务
                2、dns 服务提供本实验所有主机名解析
                3、web服务提供 www.rhce.com 虚拟主机
                4、该虚拟主机的documentroot目录在 /nfs/rhce 目录
                5、该目录由 node02 主机提供的NFS服务共享
                6、该目录可以通过autofs服务实现自动挂载
                7、所有服务应该在重启之后依然可以正常使用

两台虚拟机配置要求如下图:

解释:左边node1虚拟主机--web服务器;右边node2虚拟主机--fns服务器,提供dns虚拟主机的documentroot目录;两台虚拟机防火墙,SELinux保持开启。

87a01b37732042d1aa69664acfb8056e.png

 

解题:

第一步:配置NFS服务共享,以及实现 /nfs/rhce 目录可以通过autofs服务实现自动挂载到node1

node1上面安装以下软件包:

[root@node1 ~]# yum install httpd bind nfs-utils autofs -y

node2上面安装以下软件包:

[root@node2 ~]# yum install bind nfs-utils -y

(1)node2上配置nfs(以下的操作在node2上完成):

[root@node2 ~]# yum install nfs-utils -y
#启动服务
[root@node2 ~]# systemctl enable --now rpcbind
[root@node2 ~]# systemctl enable --now nfs-server.service 
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service.
[root@localhost ~]# systemctl status rpcbind
● rpcbind.service - RPC BindLoaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor prese>Active: active (running) since Tue 2024-07-09 23:19:40 EDT; 26s ago
TriggeredBy: ● rpcbind.socketDocs: man:rpcbind(8)Main PID: 4142 (rpcbind)Tasks: 1 (limit: 10756)Memory: 1.6MCPU: 33msCGroup: /system.slice/rpcbind.service└─4142 /usr/bin/rpcbind -w -f
#防火墙添加服务
[root@node2 ~]# firewall-cmd --permanent --add-service=nfs
success
[root@node2 ~]# firewall-cmd --reload 
success
[root@node2 ~]# systemctl restart nfs-server.service 
#创建存放nfs要导出文件的目录并设置权限
[root@node2 ~]# mkdir /rhce
[root@node2 ~]# chmod 777 /rhce/
#创建网页内容文件
[root@node2 ~]#echo rhce > /rhce/index.html
#编写配置文件
[root@node2 ~]# vim /etc/exports
/nfs *(rw) # *:表示所有人都有/nfs下的rw权限
#防火墙添加服务
[root@node2 ~]# firewall-cmd --permanent --add-service=mountd
success
[root@node2 ~]# firewall-cmd --permanent --add-service=rpc-bind
success
[root@node2 ~]# firewall-cmd --reload 
success
[root@node2 ~]# firewall-cmd --list-services 
cockpit dhcpv6-client dns mountd nfs rpc-bind ssh
#重启服务
[root@node2 nfs]# systemctl restart nfs-server.service 
#看一下自己能不能找到
[root@node2 ~]# showmount -e 192.168.54.129
Export list for 192.168.54.129:
/rhce 192.168.54.128

/etc/exports配置文件内容如下:

[root@node2 ~]# cat /etc/exports
/rhce 192.168.54.128(rw)

(2)node1上配置autofs服务实现自动挂载

#查看能不能看见
[root@node1 ~]# showmount -e 192.168.54.129
Export list for 192.168.54.129:
/rhce 192.168.54.129
#创建存放接收的文件的目录
[root@node1 ~]# mkdir /nfs
#配置/etc/auto.master主配置文件
[root@node1 ~]# vim /etc/auto.master
/nfs /etc/auto.nfs 
#创建并配置/etc/auto.nfs子配置文件
[root@node1 ~]# vim /etc/auto.nfs
rhce 192.168.54.129:/rhce
#重启服务
[root@node1 ~]# systemctl restart autofs.service 
#cd到目录,查看
[root@node1 ~]# cd /nfs/
[root@node1 nfsclient]# ll
total 0
#cd rhce,让其自动挂载
[root@node1 nfsclient]# cd nfs
#再次查看(是否自动挂载)
[root@node1 nfs]# ll
total 0
drwxrwxrwx. 2 root root 24 Jul 10 09:27 rhce
#查看一下文件内容
[root@node1 nfs]# cat rhce/index.html 
rhce

第二步:配置node1虚拟主机web服务和dns服务

(1)配置web服务:

编写vhost.conf文件,内容如下:

[root@node1 ~]# cd /var/named/
[root@node1 named]# cd /etc/httpd/conf.d/
[root@node1 conf.d]# cat vhost.conf 
<directory /nfs>
allowoverride none 
require all granted 
</directory><virtualhost 192.168.54.128:80>  
documentroot /nfs/rhce 
servername www.rhce.com
</virtualhost>

 重启服务:
 

[root@node1 conf.d]# systemctl restart httpd

 

添加本地域名解析 :

[root@node1 conf.d]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.54.128 www.rhce.com

配置DNS:

[root@node1 named]# cat /etc/resolv.conf 
# Generated by NetworkManager
search localdomain
nameserver 192.168.54.128


 

(2)配置dns正向解析:

配置 /etc/named.conf 配置文件,内容如下:

[root@node1 ~]# cat /etc/named.conf 
options {listen-on port 53 { 192.168.54.128; };directory 	"/var/named";
};zone "." IN {type hint;file "named.ca";
};zone "rhce.com" IN {type master;file "named.rhce";
};

配置named.rhce配置文件,内容如下:

[root@node1 named]# cd /var/named/
[root@node1 named]# cat named.rhce 
$TTL	1d
@ 	IN	SOA	@	admin.rhce.com.(20240708011111)IN	NS	ns.rhce.com.
ns	IN	A	192.168.54.128
www	IN	A	192.168.54.128

重启服务:

[root@node1 named]# systemctl start firewalld.service 

放行防火墙服务:

[root@node1 named]# systemctl start firewalld.service 
[root@node1 named]# firewall-cmd --permanent --add-service=http
success
[root@node1 named]# firewall-cmd --permanent --add-service=dns
success
[root@node1 named]# firewall-cmd --reload 
success

测试:

当httpd进程使用 nfs 文件系统时,需要打开一个selinux 布尔值 这个提示会在系统日志中出现,setsebool -P httpd_use_nfs 1 这个是开启的命令,如果不执行不能访问页面,因为 SELinux开启只放行对于标签的文件,需要改文件标签才能访问页面,但是传过来的index.html文件改不了标签,所以要使用上面这个命令。

#当httpd进程使用 nfs 文件系统时,需要打开一个selinux 布尔值 这个提示会在系统日志中出现,setsebool -P httpd_use_nfs 1 这个是开启的命令
[root@node1 named]# setsebool -P httpd_use_nfs 1
[root@node1 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.54.128;; Query time: 4 msec
;; SERVER: 192.168.54.128#53(192.168.54.128)
;; WHEN: Wed Jul 10 11:30:26 EDT 2024
;; MSG SIZE  rcvd: 85
[root@node2 ~]# curl www.rhce.com
rhce

 

第三步:node2配置/etc/name.conf文件,DNS,测试

[root@node2 ~]# cat /etc/named.conf 
options {listen-on port 53 { 192.168.54.129; };directory 	"/var/named";
};zone "." IN {type hint;file "named.ca";
};
[root@node2 ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
search localdomain
nameserver 192.168.54.128
[root@node2 ~]# curl www.rhce.com
rhce

第四步:实现所有服务应该在重启之后依然可以正常使用

node1:

[root@node1 ~]# systemctl enable httpd named

node2:

[root@node2 ~]# systemctl enable httpd named nfs-server

最终实现效果:

df72b96686334c1a9f0274af887b97d8.png

2f90635d917b47b9b1001c2d2df73725.png

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/43443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

three-tile: 1. 第一个three-tile程序

上篇介绍了&#xff1a;three-tile&#xff1a; 一个开源的轻量级三维瓦片库-CSDN博客 three-tile 是一个开源的轻量级三维瓦片库&#xff0c;它基于threejs使用typescript开发&#xff0c;提供一个三维地形模型&#xff0c;能轻松给你的应用增加三维瓦片地图。 项目地址&…

C#知识|账号管理系统:UI层-添加账号窗体设计思路及流程。

哈喽,你好啊,我是雷工! 前边练习过详情页窗体的设计思路及流程: 《C#知识|上位机UI设计-详情窗体设计思路及流程(实例)》 本节练习添加账号窗体的UI设计,以下为学习笔记。 01 效果展示 02 添加窗体 在UI层添加Windows窗体,设置名称为:FrmAddAcount.cs 设置窗体属…

Nginx七层(应用层)反向代理:UWSGI代理uwsgi_pass篇

Nginx七层&#xff08;应用层&#xff09;反向代理 UWSGI代理uwsgi_pass篇 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this a…

数据结构模板2

Trie树&#xff1a;用来高效存储和查找字符串集合的数据结构&#xff1a; 模板题&#xff1a;https://www.acwing.com/problem/content/837/ AC代码&#xff1a; #include<bits/stdc.h> using namespace std; int son[100010][26],cnt[100010],idx; char str[100010]; …

代码随想录算法训练营第二十九天

452. 用最少数量的箭引爆气球 这道题目我原本的想法是只要当前的气球半径范围在已有的箭头能够击穿的气球半径内就可以实现 但是 箭射出去的地方是一个值 而不是一个范围 因此有相同的重叠范围的许多气球并一定都有相同的值&#xff0c;因此这种方法不可取 这题的主要局部最…

mac安装配置cmake

本机是2015 macbook pro mid&#xff0c;已经有点老了&#xff0c;用homebrew下cmake老出问题 其实cmake官网安装也不麻烦 一、官网下载对应安装包 Download CMake 和所有dmg文件一样安装 二、改成命令行使用 一般来说 tutorial 给的都是命令行build 命令行的设置如下&am…

SFUZZ模糊测试平台全新升级,从标准到实践助力车企安全出海

开源网安模糊测试平台SFuzz全新升级&#xff0c;参照各国相关标准要求进行针对性建设&#xff0c;可为智能网联汽车信息安全测试提供更为强大的工具支持。SFuzz向被测系统输入大量随机数据&#xff0c;模拟各种异常情况&#xff0c;可以发现被测系统内潜在的缺陷和漏洞&#xf…

Spring中如何操作Redis

Spring毕竟是Java中的一个主流框架&#xff0c;如何在这个框架中使用Redis呢&#xff1f; 创建项目并引入相关依赖 然后进行创建。 至此就将Redis的相关依赖引入进来了。 编写Redis配置 将application.properties修改成application.yml 然后编写如下配置&#xff1a; spr…

usbserver工程师手记(二)设置定时任务

概述 部分银行ukey 长时间不使用后会导致休眠&#xff0c;出现虽然有连接&#xff0c;但是读不到证书&#xff0c;可以用定时重置端口的办法&#xff0c;调用接口 http://ip/usb_server/reset_port,参数为 {"port":"B5-1-2","vid_pid":"09…

Golang | Leetcode Golang题解之第228题汇总区间

题目&#xff1a; 题解&#xff1a; func summaryRanges(nums []int) (ans []string) {for i, n : 0, len(nums); i < n; {left : ifor i; i < n && nums[i-1]1 nums[i]; i {}s : strconv.Itoa(nums[left])if left < i-1 {s "->" strconv.It…

多个标签页中复用同一 QTableView

在 PyQt 中实现在多个标签页中复用同一个 QTableView 实例&#xff0c;复用同一个 QTableView 实例可以减少内存和资源的使用。每个 QTableView 实例都会消耗一定的内存和处理资源&#xff0c;如果每个标签页都创建一个新的实例&#xff0c;会增加系统的负担。通过复用实例&…

日常学习-20240710

1、一次一千万条数据插入和删除案例&#xff1a; 第一次&#xff1a;插入--批量插入&#xff0c;每次插入5000条数据&#xff0c;总耗时28min,数据无异常 删除--通过sql语句一次性删除&#xff0c;总耗时1h52min;一次删除的数据过多导致mysql的备份恢复文件极其庞大&#xff0…

CentOS7 安装 git 命令

通过yum源install下载的git版本比较低&#xff0c;不推荐此方式安装。 官网下载最新版git源码&#xff1a;Git 1. 解压安装包 tar -xzvf git-2.45.2.tar.gz 2. 安装相关依赖 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils…

uniapp使用高德地图(公众号+h5)

选择微信小程序的话后果就是你的地图出不来&#xff0c;出来了就报key异常 下面直接放配置和代码&#xff1a; 打包后的高德uni-app,uniCloud,serverless,高德地图,申请高德地图Key,配置使用高德地图,参数说明,高德开放平台用户名,百度地图,申请百度地图Key,配置使用百度地图,…

线性代数|机器学习-P22逐步最小化一个函数

文章目录 1. 概述2. 泰勒公式3. 雅可比矩阵4. 经典牛顿法4.1 经典牛顿法理论4.2 牛顿迭代法解求方程根4.3 牛顿迭代法解求方程根 Python 5. 梯度下降和经典牛顿法5.1 线搜索方法5.2 经典牛顿法 6. 凸优化问题6.1 约束问题6.1 凸集组合 Mit麻省理工教授视频如下&#xff1a;逐步…

SpringBoot使用RedisTemplate、StringRedisTemplate操作Redis

前言 RedisTemplate 是 Spring Boot 访问 Redis 的核心组件&#xff0c;底层通过 RedisConnectionFactory 对多种 Redis 驱动进行集成&#xff0c;上层通过 XXXOperations 提供丰富的 API &#xff0c;并结合 Spring4 基于泛型的 bean 注入&#xff0c;极大的提供了便利&#x…

深度学习和NLP中的注意力和记忆

深度学习和NLP中的注意力和记忆 文章目录 一、说明二、注意力解决了什么问题&#xff1f;#三、关注的代价#四、机器翻译之外的关注#五、注意力&#xff08;模糊&#xff09;记忆&#xff1f;# 一、说明 深度学习的最新趋势是注意力机制。在一次采访中&#xff0c;现任 OpenAI 研…

K8S中部署 Nacos 集群

1. 准备 GitK8Skubectlhelm 咱也没想到 K8S 部署系列能搞这么多次&#xff0c;我一个开发天天干运维的活&#xff0c;前端后端运维测试工程师实至名归。 2. 方案选择 https://github.com/nacos-group/nacos-k8s 我替你们看了一下&#xff0c;有好几种方式能部署&#xff…

【RHCE】基于用户认证和TLS加密的HTTP服务(HTTPS)

目录 一、创建用户账号 二、TLS加密 三、配置http服务子配置文件 四、创建访问http服务的文件夹以及输入重定向到文件 五、配置Linux本地仓库以及Windows下的本地仓库 六、基础操作 七、测试 一、创建用户账号 用户认证 # 创建两个账户 [rootlocalhost ~]# htpasswd -…

交叉熵损失函数的使用目的(很肤浅的理解)

第一种使用方法 import torch from torch import nn # Example of target with class indices loss nn.CrossEntropyLoss() input torch.randn(3, 5, requires_gradTrue) target torch.empty(3, dtypetorch.long).random_(5) output loss(input, target) output.backward(…