集美大学LInux期末课设

本文详细介绍了如何在RHEL8虚拟机中配置网络环境,包括NAT模式、内网IP分配、反向代理服务器(Nginx)、负载均衡服务器(Nginx)、DNS服务器(BIND)等,以及Apache、MySQL、PHP的安装与配置,旨在提供一个完整的LAMP架构学习实践案例。
摘要由CSDN通过智能技术生成

一、设计目的

1)熟练掌握RHEL8的网络配置及VMWare的网络环境配置;
2)熟练掌握软件包的安装管理;
3)熟练掌握目录、文件权限的配置;
4)熟练掌握网络应用服务的搭建和错误排查。

二、设计要求

在这里插入图片描述

如上图所示,需配置3台RHEL8的服务器(建议虚拟机内存设置为1G)
1)Server A网卡1连接到互联网(虚拟机中可使用Nat);
2)Server A网卡2和Server B、Server C连接在同一内网(同一LAN区段),配置ip地址段为192.168.X.0/24(X为自己学号后3位);
3)Server A配置为反向代理服务器,真实主机可以通过Server A访问Server B和Server C上构建的网站,反向代理服务器软件不限(建议使用Nginx);
4)Server A配置为负载均衡服务器,访问流量能在Server B和Server C上进行均衡,负载均衡软件不限(建议使用Nginx);
5)Server A配置为DNS服务器,域为 abc.com(abc为自己的姓名首字母),配置完成后,用nslookup进行正向和反向解析的校验;
6)ServerB和Server C配置Apache+Mysql+PHP,在Mysql中任意建一张表,首页文件显示查询该表的内容(Server B和Server C表内容需不一致,以示区别);
7)Server B和Server C需配置数据库管理软件(如phpmyadmin)。

三、软硬件实验环境(除了RHEL 8,其他版本可以不一样)

   RHEL 8;
   Server version: Apache/2.4.37 (centos)
   mysql  Ver 8.0.26 for Linux on x86_64 (Source distribution)
   PHP 7.2.24
   Adminer version 4.8.1
   nginx version: nginx/1.14.1
   BIND 9.11.26-RedHat-9.11.26-6.el8

四、设计步骤和调试过程

注:本次步骤我们分为三大块进行,也就是1)2)、3)4)5)6)、7)三大块

第一块

1)Server A网卡1连接到互联网(虚拟机中可使用Nat);
2)Server A网卡2和Server B、Server C连接在同一内网(同一LAN区段),配置ip地址段为192.168.X.0/24(X为自己学号后3位);

  • 说明
    这里三台服务器的网络模式全部设置为NAT模式,即使三台服务器全部设置为NAT模式也不影响他们属于一个内网!!!并且他们三个又都能访问外网,这样在校园网的环境中比较方便实验,如果改为桥接模式,那么每换一个虚拟机上网就得重新认证一次(而且可能还存在NAC根本上不了网),而NAT模式只需要物理机认证即可,因为所有的IP最终经过NAT网关都转为了物理机的以太网网卡的IP(如果你接的是WIFI那就是WLAN网卡);我们画出全部使用NAT之后的拓扑图,就如下(交换机和路由器为虚拟机虚拟出来的设备):
    在这里插入图片描述

接下来我们将逐个讲解配置:

  • NAT网关配置
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 三台Server的IP配置方法
    在这里插入图片描述
    vim /etc/sysconfig/network-script/ifcfg-ens160进入配置文件,文件配置如下(三台设备除了IP其他配置一样,不再赘述)
    在这里插入图片描述
    输入systemctl restart NetworkManagersudo nmcli connection up ens160重启网卡,使得配置生效
    并且还得确认虚拟机使用的是NAT的网络模式
    在这里插入图片描述
    在这里插入图片描述

  • 物理机的VM8网卡设置
    在这里插入图片描述
    在这里插入图片描述

  • 以太网网卡设置
    默认都为DHCP,不需要特别设置,想要查看IP的话,可以 WINDOWS+R 输入 cmd 后再输入 ipconfig 查看


验证配置方式:

  • 1)Server A网卡1连接到互联网(虚拟机中可使用Nat);
    该网卡配置就是以太网网卡的配置,查看方法就在上面
  • 2)Server A网卡2和Server B、Server C连接在同一内网(同一LAN区段),配置ip地址段为192.168.X.0/24>(X为自己学号后3位);
    逐个服务器输入ifconfig,或者 vim /etc/sysconfig/network-script/ifcfg-ens160 查看,都可以

第二块

3)Server A配置为反向代理服务器,真实主机可以通过Server A访问Server B和Server C上构建的网站,反向代理服务器软件不限(建议使用Nginx);
4)Server A配置为负载均衡服务器,访问流量能在Server B和Server C上进行均衡,负载均衡软件不限(建议使用Nginx);
5)ServerB和Server C配置Apache+Mysql+PHP,在Mysql中任意建一张表,首页文件显示查询该表的内容(Server B和Server C表内容需不一致,以示区别);
6)Server B和Server C需配置数据库管理软件(如phpmyadmin)。

  • 说明:
    在进行配置之前,需要我们三台服务器都能正常上网,按照前面的网络进行配置,应该是没有问题的,要是有问题可以留言评论区;除了能正常上网之外,还需要安装一个库,三个服务器都要装;
    依次输入:
    sudo dnf install --nogpgcheck https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    sudo dnf install --nogpgcheck https://downloadl. rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm

接下来进行正式配置

  • Server A配置
    关闭安全相关功能(以后重启后记得还得关闭)
    setenforce 0 暂时关闭安全
    systemctl stop firewlald 暂时关闭防火墙
    systemctl stop firewlald 永久关闭防火墙
    可以使用 getenforce 以及 systemctl status firewalld查看是否正确关闭
    安装Nginx
    yum -y install nginx
    启动nginx并且设置为开机自启
    systemctl start nginx
    systemctl enable nginx
    设置Nginx的配置文件实现负载均衡
    vim /etc/nginx/nginx.conf
    在这里插入图片描述
  • Server B和Server C配置
    注意,B和C也得先安装前面那个包,不再赘述,且B和C的配置类似
    安装Apache以及开发工具包
    yum -y install httpd以及yum -y install httpd-devel
    启动Apache并且设置开机自启
    systemctl start httpd 以及 systemctl enable httpd
    物理机(物理防火墙要关闭)访问启动了Apache的虚拟机的IP地址验证
    在这里插入图片描述
    安装Mysql且配置账号
    yum -y install mysql-server.x86_64
    启动Mysql并且设置开机自启
    systemctl start mysqld.service 以及 systemctl enable mysqld.service
    Mysql添加账号
    在这里插入图片描述
    使用创建账号登录
    在这里插入图片描述
    安装PHP以及PHP-Mysql交互组件
    yum -y install php
    yum -y install php-mysqlnd.x86_64
    安装数据库管理软件 adminer
    cd /var/www/html
    sudo wget "http://www.adminer.org/latest.php" -O adminer.php
    给adminer权限
    Chmod -R 777 /var/www/html/adminer.php
    通过adminer管理数据库
    访问管理页面(输入的IP为本机apache的IP)
    在这里插入图片描述 登录数据库
    在这里插入图片描述
    登录成功
    在这里插入图片描述
    创建数据库test
    在这里插入图片描述
    在这里插入图片描述
    创建表test以及字段show
    在这里插入图片描述在这里插入图片描述
    新建数据
    注:Sever B和Server C除了新建数据不同以外
    (Server B的新建数据事例: This_is_192.168.23.3 Server C的新建数据事例: This_is_192.168.23.4),其他的adminer配置方式两者一样不赘述;
    在这里插入图片描述
    Server B和C编写PHP页面
    vim /var/www/html/test.php
    文本内容如下(为了防止课设查重,你可以把这个文本复制到GPT如通义千问,让他生成一个类似的而不是照搬)
<?php
// 数据库连接参数
$host = 'localhost';
$username = 'root';
$password = 'lsx8876099';
$dbname = 'test';

// 创建与数据库的连接
$conn = new mysqli($host, $username, $password, $dbname);

// 检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// SQL 查询,从 'test' 表中获取 'show' 字段的所有数据
$sql = "SELECT `show` FROM `test`";
$result = $conn->query($sql);

// 检查并显示查询结果
if ($result->num_rows > 0) {
    // 输出每一行数据
    while($row = $result->fetch_assoc()) {
        echo "Show Field Value: " . $row["show"]. "<br>";
    }
} else {
    echo "0 结果";
}

// 关闭连接
$conn->close();
?>

然后给该文件权限
Chmod -R 777 /var/www/html/test.php


验证配置方式:
在物理机的浏览器输入 192.168.23.2/test.php(前面IP为ServerA的IP),成功显示之后按刷新键,可以发现页面出现变化
在这里插入图片描述
在这里插入图片描述
说明:物理机(物理防火墙要关闭)访问反向解析服务器IP,每次访问都会显示不一样的结果,说明
A、反向解析实现
B、负载均衡实现
C、LAMP架构正常工作
D、PHP页面编写正确,且数据库正常工作返回结果正确

第三块

7)Server A配置为DNS服务器,域为 abc.com(abc为自己的姓名首字母),配置完成后,用nslookup进行正向和反向解析的校验;

安装Bind服务
yum -y install bind
修改主配置文件
vim /etc/named.conf
在这里插入图片描述
在这里插入图片描述
修改子配置文件
vim /etc/named.rfc1912.zones
在这里插入图片描述
创建区域文件(拷贝模版文件进行修改,注意com后面有个“.”,不要忘记写!!!)
建立正向解析文件
cp -p /var/named/named.localhost /var/named/ly.zone
vim /var/named/ly.zone
在这里插入图片描述

建立反向解析文件
cp -p /var/named/named.localhost /var/named/23.168.192.rs.zone
vim /var/named/23.168.192.rs.zone
在这里插入图片描述
检测文件语法是否有错误(均检测通过,有错再认真核对一下,注意不要漏了“.”,还不行黏贴到通义千问)
named-checkconf /etc/name.conf
named-checkconf /etc/named.rfc.zones
cd /var/named //由于下面两个检测需要再/var/named下进行,所以不能省略
named-checkzone ly.zone ly.zone
named-checkzone 23.168.192.rs.zone 23.168.192.rs.zone
全部通过如下
在这里插入图片描述
为文件授权
chmod -R 777 /var/named/ly.zone
chmod -R 777 /var/named/23.168.192.rs.zone
开启DNS服务并且设置开机自启
systemctl start named
systemctl enable named
Server B和Server C修改DNS为Server A的IP地址(怎么修改第一块有,不赘述)
修改后如下
在这里插入图片描述


验证
在修改了DNS后的Server上进行,如Server B
在这里插入图片描述
说明
A、正向和反向解析都成功,DNS服务器运行正常

五、注意点

1、phpmyadmin笔者也试着安装过,但是尝试了半天收效甚微,所以改用adminer,这个安装快,省事,即装即用,强推!
2、如果出现问题,很可能就是服务没有启用,或者防火墙以及安全功能没关,以及文件没有授权,请逐个排查
systemctl status named 检测DNS是否正常
systemctl status httpd 检测Apache是否正常
systemctl status nginx 检测nginx是否正常
systemctl status mysqld.service 检测数据库是否正常
getenforce 检测安全功能是否关闭
setenforce 0 关暂时闭安全功能(重启后就得重新输入)
systemctl status firewalld 检测防火墙是否关闭
systemctl stop firewalld 暂时关闭防火墙
systemctl disable firewalld 永久关闭防火墙
Linux都学一学期了,systemctl status/stop/start/restart/disable/enable 服务名
这种格式应该不用我说吧(狗头)
chmod -R 777 文件路径 这样可以直接给沿途的所有文件和目录加权限比较方便

3、如果学弟学妹走的是网络方向(和我一样哈哈哈),还是建议好好学Linux,毕竟网络计算存储三个东西,作为网工除了要掌握网络外至少还得掌握一个,而Linux就是计算;同时这个课程设计,能帮助我们理解反向代理和负载均衡的原理,以及LAMP架构(Linux、Apache、Mysql、PHP)这些东西其实在现网中是非常常用的;而且,就算只是会Linux网卡的配置,我们比起没学过Linux的同学也是遥遥领先了;

4、最后,如果有啥问题,都可以评论区留言,我有空会回,冲冲冲!!!点点关注不迷路哈;

  • 23
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

辽胜于无

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值