Linux上的系统服务——DNS、WEB、NFS 和 AutoFS 服务的详细配置步骤

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

在此次 RHCE 系统服务综合实验中,我们需要在两台主机 node01(192.168.205.135)和 node02(192.168.205.136)上配置 DNS、WEB、NFS 和 AutoFS 服务。以下是详细的操作步骤和配置过程~~


需求分析

  1. DNS 和 WEB 服务在 node01 主机上提供:DNS 服务用于域名解析,WEB 服务用于提供 www.rhce.com 虚拟主机。
  2. DNS 服务解析所有主机名:DNS 服务器保存所有主机名的解析记录。
  3. WEB 服务的 DocumentRoot 目录位于 /nfs/rhce:WEB 服务的根目录存储在 /nfs/rhce,由 node02 提供 NFS 共享。
  4. 利用自动挂载功能:通过 autofs 实现自动挂载,简化管理,并确保目录在访问时自动挂载。
  5. 确保服务在重启后依然正常运行:所有服务需要在系统重启后自动启动。

准备工作:配置防火墙规则

首先,在 node01 和 node02 上配置防火墙,以放行必要的服务端口:

firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --reload
firewall-cmd --list-services  # 显示已放行的服务
  • NFS 服务依赖于多个端口(如 mountd、rpc-bind),为了确保 NFS 服务能够正常工作,我们需要将这些相关端口放行。

1. 在 node01 上提供 DNS 和 WEB 服务

1.1 配置 DNS 服务

在 node01 主机上编辑 DNS 配置文件:

vim /etc/named.conf

添加以下内容:

options {listen-on port 53 { 192.168.205.135; };directory "/var/named";
};zone "rhce.com" IN {type master;file "named.rhce";
};
  • listen-on port 53 { 192.168.205.135; }; 指定 DNS 服务器监听接口和端口(53为DNS服务端口),确保 DNS 服务仅在特定 IP 地址上监听。
  • directory "/var/named"; 指定区域数据文件存放的位置。
  • zone "rhce.com" 定义一个新的区域并指示该区域的数据存储在 /var/named/named.rhce 文件中。

创建区域文件:

vim /var/named/named.rhce

添加以下内容:

$TTL 1D
@       IN      SOA     @       admin.rhce.com. (0 ; Serial1 ; Refresh1 ; Retry1 ; Expire1 ) ; Minimum TTLIN      NS      ns.rhce.com.
ns      IN      A       192.168.205.135
www     IN      A       192.168.205.135
  • $TTL 1D 设置默认的生存时间为1天。
  • SOA记录提供了该区域的权威信息,如负责的管理员。
  • NS记录指定了负责该区域的名字服务器。
  • A记录将域名(www.rhce.com)解析为 IP 地址(192.168.205.135)。

启动并启用 DNS 服务:

systemctl restart named
systemctl enable named
  • 启动和启用服务,以确保 DNS 服务在系统重启后自动启动。
1.2 配置 WEB 服务

编辑 Apache 虚拟主机配置文件:

vim /etc/httpd/conf.d/vhost.conf

添加以下内容:

<Directory /nfs>AllowOverride NoneRequire all granted
</Directory><VirtualHost 192.168.205.135:80>DocumentRoot /nfs/rhceServerName www.rhce.com
</VirtualHost>
  • <Directory /nfs> 设置访问权限,确保所有用户都能访问 /nfs 目录。
  • DocumentRoot /nfs/rhce 指定虚拟主机的根目录。
  • ServerName www.rhce.com 设置虚拟主机的域名。

创建 DocumentRoot 目录并添加测试文件:

mkdir -p /nfs/rhce
echo "welcome to rhce" > /nfs/rhce/index.html
  • 创建虚拟主机的根目录并创建测试文件,以此来验证 WEB 服务是否正常工作。

启动并启用 Apache 服务:

systemctl restart httpd
systemctl enable httpd
  • 启动和启用服务,以确保 WEB 服务在系统重启后能够自动启动。

2. 在 node02 上配置 NFS 服务

编辑 NFS 配置文件:

vim /etc/exports

添加以下内容:

/nfs/rhce 192.168.205.135(rw,sync,all_squash)
  • /etc/exports 文件用于配置 NFS 共享目录。
  • 192.168.205.135(rw,sync,all_squash) 指定共享目录的客户端地址和相关权限设置。

创建共享目录并设置权限:

mkdir -p /nfs/rhce
chmod -R 777 /nfs/rhce
  • 确保共享目录存在并设置适当的权限,使所有用户都可以读取和写入该目录。

启动并启用 NFS 服务:

systemctl start rpcbind
systemctl start nfs-server
systemctl enable rpcbind
systemctl enable nfs-server

3. 在 node01 上配置自动挂载

编辑自动挂载主配置文件:

vim /etc/auto.master

添加以下内容:

/nfs    /etc/auto.nfs
  • 定义自动挂载点 /nfs 及其配置文件 /etc/auto.nfs,更方便统一管理。

编辑自动挂载子配置文件:

vim /etc/auto.nfs

添加以下内容:

rhce    192.168.205.136:/nfs/rhce
  • 将远程 NFS 共享路径(192.168.205.136:/nfs/rhce)挂载到本地的 /nfs/rhce

启动并启用 autofs 服务:

systemctl restart autofs
systemctl enable autofs
  • 启动并启用 autofs 服务,以确保在系统重启后能够自动启动来实现目录的自动挂载。

4. 验证配置

4.1 验证 DNS 解析

在 node01 上验证 DNS 解析:

dig -t A www.rhce.com @192.168.205.135
  • 使用 dig 工具验证 DNS 解析是否正常工作。
4.2 验证 Web 服务

在 node01 上验证 Web 服务:

curl www.rhce.com
# 输出:welcome to rhce
  • 使用 curl 工具访问虚拟主机,验证 WEB 服务是否正常工作。
4.3 验证自动挂载

在 node01 上验证自动挂载:

cd /nfs/rhce
ls
# 输出:index.html
  • 访问自动挂载的目录,验证 autofs 是否正常工作。

5. 确保配置在系统重启后依然有效

5.1 配置 /etc/fstab 持久化 NFS 挂载

在 node02 上编辑 /etc/fstab 文件:

vim /etc/fstab

添加以下内容:

/nfs/rhce 192.168.205.136:/nfs/rhce nfs defaults 0 0
  • 确保 NFS 目录在系统重启后自动挂载。
5.2 确保 DNS 和 Apache 服务启动

确保 DNS 和 Apache 服务在重启后能够自动启动:

systemctl enable named
systemctl enable httpd
5.3 验证 Apache 配置文件

在修改完 Apache 配置文件后,验证配置文件是否有语法错误:

apachectl configtest

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

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

相关文章

RK3568笔记三十九:多个LED驱动开发测试(设备树)

若该文为原创文章&#xff0c;转载请注明原文出处。 通过设备树配置一个节点下两个子节点控制两个IO口&#xff0c;一个板载LED&#xff0c;一个外接LED。 一、介绍 通过学习设备树控制GPIO&#xff0c;发现有多种方式 一、直接通过寄存器控制 二、通过设备树&#xff0c;但…

C#调用非托管dll,并从dll中再调用C#中的方法

从Delphi DLL调用C#方法&#xff1a;一种高效的跨语言集成方案 在软件开发中&#xff0c;我们经常遇到需要集成不同语言编写的组件的情况。 例如&#xff0c;使用C#开发的现代应用程序可能需要调用一些用Delphi编写的老DLL。 如果直接在Delphi中实现某些功能存在困难&#xff…

基于STC89C52RC单片机的大棚温控系统(含文档、源码与proteus仿真,以及系统详细介绍)

本篇文章论述的是基于STC89C52RC单片机的大棚温控系统的详情介绍&#xff0c;如果对您有帮助的话&#xff0c;还请关注一下哦&#xff0c;如果有资源方面的需要可以联系我。 目录 摘要 原理图 仿真图 系统总体设计图 代码 系统论文 参考文献 资源下载 摘要 本文介绍的…

CSA笔记3-文件管理命令(补充)+vim+打包解包压缩解压缩命令

grep(-i -n -v -w) [rootxxx ~]# grep root anaconda-ks.cfg #匹配关键字所在的行 [rootxxx ~]# grep -i root anaconda-ks.cfg #-i 忽略大小写 [rootxxx ~]# grep -n root anaconda-ks.cfg #显示匹配到的行号 [rootxxx ~]# grep -v root anaconda-ks.cfg #-v 不匹配有…

甄选范文“论软件维护方法及其应用”软考高级论文,系统架构设计师论文

论文真题 软件维护是指在软件交付使用后,直至软件被淘汰的整个时间范围内,为了改正错误或满足 新的需求而修改软件的活动。在软件系统运行过程中,软件需要维护的原因是多种多样的, 根据维护的原因不同,可以将软件维护分为改正性维护、适应性维护、完善性维护和预防性 维护…

NumPy中np.clip()的用法

np.clip() 是 NumPy 库中的一个函数&#xff0c;用于限制数组中的数值在一个指定的最小值和最大值之间。它将数组中的所有元素逐个检查&#xff0c;并将它们限制在给定的下限&#xff08;min&#xff09;和上限&#xff08;max&#xff09;范围内。如果元素小于下限&#xff0c…

Linux 上 TTY 的起源

注&#xff1a;机翻&#xff0c;未校对。 What is a TTY on Linux? (and How to Use the tty Command) What does the tty command do? It prints the name of the terminal you’re using. TTY stands for “teletypewriter.” What’s the story behind the name of the co…

debian 实现离线批量安装软件包

前言 实现在线缓冲需要的软件和对应依赖的包&#xff0c;离线进行安装 &#xff0c;用于软件封装。 测试下载一个gcc和依赖环境&#xff0c;关闭默认在线源&#xff0c;测试离线安装gcc和依赖环境 兼容 debian ubuntu/test 测试下载安装包到目录 vim /repo_download.sh #!…

【数据结构】算法复杂度

算法复杂度 数据结构算法复杂度 大o渐进表示法空间复杂度 数据结构 数据结构&#xff1a;是计算机存储和组织数据的方式。 比如打开一个网页&#xff0c;我们看到的文字就是数据&#xff0c;这些数据需要用一个结构来把他管理起来&#xff0c;我们称之为&#xff1a;数据结构 …

基于springboot3实现单点登录(一): 单点登录及其相关概念介绍

引言 应网友要求&#xff0c;从本文开始我们将实现一套基于springboot3springsecurity的单点登录认证系统。 单点登录的实现方式有多种&#xff0c;接下来我们会以oauth2为例来介绍和实现。 单点登录介绍 单点登录&#xff08;Single Sign-On&#xff0c;简称SSO&#xff0…

nftables(7)集合(SETS)

简介 在nftables中&#xff0c;集合&#xff08;sets&#xff09;是一个非常有用的特性&#xff0c;它允许你以集合的形式管理IP地址、端口号等网络元素&#xff0c;从而简化规则的配置和管理。 nftables提供了两种类型的集合&#xff1a;匿名集合和命名集合。 匿名集合&…

使用base64通用文件上传

编写一个上传文件的组件 tuku,点击图片上传后使用FileReader异步读取文件的内容&#xff0c;读取完成后获得文件名和base64码&#xff0c;调用后端uploadApi,传入姓名和base64文件信息&#xff0c;后端存入nginx中&#xff0c;用于访问 tuku.ts组件代码&#xff1a; <templa…

D. The Omnipotent Monster Killer

D. The Omnipotent Monster Killer 不每到一轮再考虑杀哪些&#xff0c;而是对怪物考虑&#xff0c;考虑怪物什么时候死&#xff0c;死前造成了多少伤害不以轮数为考虑主体&#xff0c;而是以怪物为考虑主体若当前根的怪物在wi轮死亡&#xff0c;wi没在之前出现过则该根需要连…

系统测试-白盒测试学习

目录 1、语句覆盖法&#xff1a; 2、判定覆盖法&#xff1a; 3、条件覆盖法&#xff1a; 4、判定条件覆盖&#xff1a; 5、条件组合的覆盖&#xff1a; 6、路径覆盖&#xff1a; 黑盒&#xff1a;需求 白盒&#xff1a;主要用于单元测试 1、语句覆盖法&#xff1a; 程序…

OSU!题解(概率dp)

题目&#xff1a;OSU! - 洛谷 思路&#xff1a; 设E()表示截止到i所获得的分数&#xff1b; 对于到i点的每一个l&#xff0c;如果第i1点为1&#xff0c;那么会新增分数3*l^23*l1; 就有递推公式方程&#xff1a; E()E()p[i1]p*(3*l^23*l1);(p代表截止到i获得长度l的概率)&a…

怎样在 PostgreSQL 中优化对多表关联的连接条件选择?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01;&#x1f4da;领书&#xff1a;PostgreSQL 入门到精通.pdf 文章目录 怎样在 PostgreSQL 中优化对多表关联的连接条件选择一、理解多表关联的基本概念二、选择合适的连接条件…

[Qt] QObject禁止拷贝构造和赋值运算符的原因

QObject为什么禁用复制构造函数和赋值运算符&#xff1f; 但是注意第一点&#xff0c;不要以为 QObject 的 objectName 必须是唯一的。 相关思考 基类禁止拷贝操作对派生类的影响 有瑕疵&#xff0c;最后一句应该是 赋值运算符

【C++】拷贝构造函数及析构函数

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…

dbeaver连接mysql8异常

部署了mysql8&#xff0c;尝试用dbeaver 24.1.2连接它。结果配置完成后测试连接时报错&#xff1a;Public Key Retrieval is not allowed. 按照提示修改驱动属性&#xff1a; allowPublicKeyRetrievaltrue

【BUG】已解决:ValueError: Expected 2D array, got 1D array instead

已解决&#xff1a;ValueError: Expected 2D array, got 1D array instead 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;武汉…