Web 服务、 Nfs 服务器以及 Dns 服务器综合实验

要求:

1.web 服务的资源文件通过 nfs 服务器共享 www.luntan.com

2.确保所有主机时间同步

3.定义本地 dns 服务器解析 web 主机域名

实验:

|----------------|---------|
| 主机 | 服务程序 |
| 192.168.96.142 | dns、nfs |
| 192.168.96.132 | web |

服务器说明:

|-----|--------------------------------------|
| 设备 | IP |
| 服务端 | 192.168.96.142 [root@localhost ~] |
| 客户端 | 192.168.96.132 [root@www ~] |

1.确保所有主机时间同步

① 首先检查 chrony 服务是否已经安装(chrony 是在 linux 系统中用于时间同步的守护进程,可以让系统时钟与网络时间协议(NTP)服务器保持同步);在看到已安装后启动该程序
bash 复制代码
[root@142 ~]# rpm -qa | grep chrony
chrony-4.5-3.el9.x86_64

[root@142 ~]# systemctl start chronyd 
② 进入到 chrony 服务配置文件查看指定的 NTP 服务器池
bash 复制代码
[root@142 ~]# vim /etc/chrony.conf 

pool 2.rhel.pool.ntp.org iburst
③ 查看 chrony 当前时间源状态,带 * 符号的源表示当前正在使用该服务器进行同步;两个主机的同步的 IP 地址一样说明在 /etc/chrony.conf 中重复配置了 同一个 NTP 服务器
bash 复制代码
[root@142 ~]# chronyc sources

MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^- time.cloudflare.com           3   9   377    56    +23ms[  +22ms] +/-  242ms
^+ ntp5.flashdance.cx            2   8   377   370  -2762us[-4281us] +/-  108ms
^+ time.cloudflare.com           3   9   377    56  +3249us[+1772us] +/-  106ms
^* 211.68.71.26                  3   8   373    25    -12ms[  -13ms] +/-   88ms


# MS Name/IP address:
                    ① ^:表示该源是 NTP 服务器(server)
                    ② -:表示未被合并的源
                    ③ +:表示被合并到时间计算中的辅助源
                    ④ *:表示当前正在同步的主时间源

# Stratum:
         NTP 服务器的层级,数值越小越接近原子钟(2 比 3更精确)

# Poll:
      轮询间隔的对数(6表示 2^6 = 64 秒)

# Reach:
       可达性寄存器(八进制),记录最近 8 次尝试连接的结果(377 表示连续 8 次成功)

# LastRx:
        上次成功接收数据包的时间(秒)

# Last sample:
             最后一次测量的时间偏移量,格式为 调整后偏移 [原始测量值] +/- 误差估计
bash 复制代码
[root@132 ~]# chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^- time.cloudflare.com           3   8   377    18   -398us[ -398us] +/-  133ms
^* 211.68.71.26                  2   7   377   122  +1913us[+1105us] +/-  104ms
^- time.cloudflare.com           3   8   377    82    +91ms[  +91ms] +/-  198ms
^+ ntp5.flashdance.cx            2   7   377    85  -5186us[-5186us] +/-  119ms
④ 除却 chronyc sources 查看 chrony 当前时间源状态,timedatectl 同样可以管理系统时间和日期,查看和配置系统时钟、时区以及 NTP 同步状态
bash 复制代码
[root@142 ~]# timedatectl

               Local time: 五 2025-05-23 14:28:07 CST
           Universal time: 五 2025-05-23 06:28:07 UTC
                 RTC time: 五 2025-05-23 06:28:08
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes     # NTP 同步状态
              NTP service: active  # chrony 或 ntpd 是否运行
          RTC in local TZ: no      # RTC 是否使用本地时区

2.在142主机上实现 dns 以及 nfs 服务程序

DNS
① rpm 查看 dns 服务程序 bind
bash 复制代码
[root@142 ~]# rpm -qa | grep bind
② 查看后没有 bind 程序包则进行下载
bash 复制代码
[root@142 ~]# mount /dev/sr0 /mnt    # 磁盘挂载

[root@142 ~]# vim /etc/yum.repos.d/base.repo     # 查看yum源配置是否完整

[root@142 ~]# dnf install bind -y     # 下载bind程序包
③ 进入到 bind 配置文件并编辑,其次进入到配置文件中资源文件 named.openlab 中设置 132 主机的 luntan.com
bash 复制代码
[root@142 ~]# vim /etc/named.conf 

zone "luntan.com" IN {
        type master;
        file "named.openlab";
};
bash 复制代码
[root@142 ~]# vim /var/named/named.openlab

$TTL 1D
@       IN SOA @ rname.invalid. (
                                        1       ; serial
                                        1M      ; refresh
                                        1M      ; retry
                                        1M      ; expire
                                        3M )    ; minimum                                       
        NS      ns.openlab.com.

ns      A       192.168.96.142

www     A       192.168.96.132    ; www.luntan.com   192.168.96.132   web服务器主机

wwww    CNAME   www

ftp     A       192.168.96.222

mail    A       192.168.96.100
④ 修改完配置文件后重启服务程序
bash 复制代码
[root@142 ~]# systemctl restart named
⑤ 在 132 主机进行测试
bash 复制代码
[root@132 ~]# dig -t A www.luntan.com @192.168.96.142
NFS
① 下载 nfs-utils 程序包
bash 复制代码
[root@142 ~]# dnf install nfs-utils -y
② 进入到 /etc/exports 配置文件并编辑,其次根据配置文件中设置的创建对应的资源文件
bash 复制代码
[root@142 ~]# vim /etc/exports
/pub  *(rw,sync)

# sync:启用同步写入模式;NFS 服务在处理客户端写入请求时,会将数据先写入本地磁盘,再返回确认信息给客户端


[root@142 ~]# mkdir /pub
③ 将 Discuz_X3.5_SC_UTF8_20230520 文件(论坛网站开源包文件)传输至 /pub 目录下并进行解压操作
bash 复制代码
[root@142 ~]# cd /pub

[root@142 pub]# 
bash 复制代码
[root@142 pub]# unzip Discuz_X3.5_SC_UTF8_20230520.zip 

[root@142 pub]# ll
④ 重启 nfs 服务,由于 nfs 服务启动时每次都会通过 rpc 进行端口注册,所以不建议频繁进行重启操作,只需要进行导出操作即可
bash 复制代码
[root@142 pub]# exportfs -ra
⑤ 将当前主机挂载的文件系统进行查看,但是我们前面下载完 nfs-utils 后没有启动服务程序,所以先启动 nfs-utils ,在进行挂载系统查看
bash 复制代码
[root@142 ~]# systemctl restart nfs-server.service

[root@142 ~]# showmount -e 192.168.96.142
Export list for 192.168.96.142:
/pub *
⑥ 客户端访问服务端共享系统,需要在客户端建立一个挂载点目录,我们创建为 /www'接着将服务端的共享文件挂载到客户端的 /www 下,挂在后可查看服务端的共享文件内容
bash 复制代码
[root@132 ~]# dnf install nfs-utils -y

[root@132 ~]# mkdir /www

[root@132 ~]# mount 192.168.96.142:/pub /www

[root@132 ~]# ll /www

3.在132主机上实现 web 服务器

① 下载 nginx 程序包
bash 复制代码
[root@132 ~]# dnf install nginx -y
② 通过 nfs 解析网站资源路径下的界面信息,需要自定义一个配置文件
bash 复制代码
[root@132 ~]# vim /etc/nginx/conf.d/luntan.conf

server {
        listen 80;
        server_name www.luntan.com;
        root /www/upload/;

        location ~* \.(jpg|jpeg|png|gif|css|js)$ {
                #~* 匹配不区分大小写
                expires 30d;  # 设置缓存时间
                access_log off;
        }

# php-fpm  进程调度器
        location  / {

        fastcgi_pass   unix:/run/php-fpm/www.sock;
        fastcgi_index  index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;

        }
}
③ 解析 php 文件还需要下载 php 解析程序
bash 复制代码
[root@132 ~]# dnf install php* -y
④ 最后安装数据库程序 mariadb-server 并启动
bash 复制代码
[root@132 ~]# dnf install mariadb-server -y

[root@132 ~]# systemctl restart mariadb
⑤ MySQL/MariaDB 提供一个安全配置脚本,用于初始化数据库安全设置;除了要设置密码以外,其余皆可回车
bash 复制代码
[root@132 ~]# mysql_secure_installation
⑥ 完成之后登录数据库并创建 luntan 的数据库,创建完成后 exit 退出数据库即可
bash 复制代码
[root@132 ~]# mysql -uroot -p

Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 13
Server version: 10.5.22-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database luntan;
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> exit;
Bye
⑦ 同时启用并立即启动三个服务:Nginx(Web 服务器)、MariaDB(数据库)和 PHP-FPM(PHP 处理引擎)
bash 复制代码
[root@132 ~]# systemctl enable nginx mariadb php-fpm --now
Ⅰ.在 Windows 下测试 luntan
① 在 Windows 系统下登录浏览器,在浏览器中输入 linux 系统中的132主机 IP 地址进入到 Discuz! 安装向导(由于在动态网站 LNMP 文章中有完整的安装过程,这里省略安装过程)

进入到安装向导后我们可以看到文件缺失以及权限不够的问题,我们返回到 linux 中解决这两个问题。注意这里的文件是在服务端(142主机)的共享文件中,所以我们需要在服务端(142主机)修改权限等问题!

bash 复制代码
[root@142 ~]# cd /pub/upload/   # 将路径切换到upload下

[root@142 upload]# ll    # 查看upload下文件名

[root@142 upload]# chmod 777 config data uc_* -R    # 修改目录以及该目录下所有文件的权限,以递归的方式

修改完成后返回到 Windows 下刷新页面即可完成检查安装环境

② 安装完成后点击直接访问站点即可进入论坛
Ⅱ.在 Linux 下测试 luntan
① 在132主机客户端修改 dns IP 地址为142主机
bash 复制代码
[root@132 ~]# vim /etc/resolv.conf 

# Generated by NetworkManager
search localdomain
nameserver 192.168.96.142
② 进入到浏览器中输入 www.luntan.com 域名即可成功进入到我们的论坛界面,这一步证明我们在142主机配置的 dns 解析没有问题!
相关推荐
sdm0704277 小时前
yum和开发工具vim/gcc
linux·服务器·centos
zhaoyufei1337 小时前
RK3568-11.0 设置WiFi p2p静态IP
服务器·tcp/ip·p2p
Leinwin13 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
2401_8653825013 小时前
信息化项目运维与运营的区别
运维·运营·信息化项目·政务信息化
漠北的哈士奇13 小时前
VMware Workstation导入ova文件时出现闪退但是没有报错信息
运维·vmware·虚拟机·闪退·ova
如意.75913 小时前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
运维小欣14 小时前
智能体选型实战指南
运维·人工智能
yy552714 小时前
Nginx 性能优化与监控
运维·nginx·性能优化
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ15 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
05大叔16 小时前
网络基础知识 域名,JSON格式,AI基础
运维·服务器·网络