在RedHat8中 基于IP地址、端口、域名访问web服务器

一、搭建环境

1. 安装httpd软件包。

systemctl stop firewalld  //停止防火墙
setenforce 0    //关闭selinux
mount /dev/sr0 /mnt    //将mnt挂载到本地光盘里面
dnf repolist    //挂载光盘后检测
vim /etc/yum.repo.d/base.repo    //从本地引入下载源
[Base]
name=Base
baseurl=file:///mnt/BaseOS
enable=1
gpgcheck=0
[AppStream]         //redhat8增加的扩展库
name=AppStream
baseurl=file:///mnt/AppStream
gpgcheck=0
enable=1            //默认为开启,不用写

2. 安装Apache主程序,由httpd提供。

dnf install httpd -y          //红帽7采用了yum install
systemctl start httpd         //启动服务

3. 查看默认http访问界面。

systemctl status httpd   //首先查看httpd状态

在这里插入图片描述
由此图第二行

httpd: Could not reliably determine the server’s fully qualified domain name, using localhost.localdomain. Set the ‘ServerName’ directive globally to suppress this message

得出 使用localhost.localdomain,无法可靠的确定服务器的完全限定域名。应该在全局中设置“ServerName” 指令以禁止此消息

vim /etc/httpd/conf/httpd.conf
找到ServerName
ServerName 0.0.0.0:80
systemctl restart httpd

客户端测试 :

curl http://(自己的主机IP)

二、基于IP地址访问Web服务器

1.配置网络(需要先找到网段)

1.1 使用图形化查看目前所用的网段:

①打开虚拟机中的虚拟网络编辑器:
在这里插入图片描述
②查看目前使用的网段
在这里插入图片描述

1.2.1 使用代码配置网络:

(在主机设置中找到自己的网卡和网段,以下配置仅为示例)
[root@localhost ~]# nmcli connection modify eno16777736 ipv4.addresses 192.168.10.100/24 ipv4.gateway 192.168.10.1 ipv4.dns 114.114.114.114 ipv4.method  manual connection.autoconnect yes  //
[root@localhost ~]# nmcli connection modify eno16777736 +ipv4.addresses 192.168.10.200/24 ipv4.gateway 192.168.10.1 ipv4.dns 114.114.114.114 ipv4.method  manual connection.autoconnect yes
[root@localhost ~]# nmcli connection up eno16777736      //打开网卡

1.2.2使用图形化配置网络:

①:打开设置
在这里插入图片描述
②:开启有线(注意,配好地址后要重启一次),并打开设置进行IP配置
在这里插入图片描述
③:使用IPV4地址,改为手动配置,并添加IP
在这里插入图片描述

此处需要注意,先查看自己的主机网段,利用自己的网段分配IP
查看网段使用命令ip a 本机使用的网卡一般en开头
查看本机目前所使用的网卡方法:

①打开网络设置
在这里插入图片描述

②打开更改适配器选项
在这里插入图片描述
③双击网卡查看状态
在这里插入图片描述

2.编辑配置文件(创建虚拟主机)

[root@localhost ~]# mkdir /www/{100,200} -pv 
mkdir: 已创建目录 "/www/100"
mkdir: 已创建目录 "/www/200"
[root@localhost ~]# echo this is 192.168.10.100 > /www/100/index.html    //将网页内容给创建的网页主目录下的index.html(默认)
[root@localhost ~]# echo this is 192.168.10.200 > /www/200/index.html
vim /etc/httpd/conf.d/vhosts.conf   //在子配置文件下编辑
 <Direotory /www>
	AllowOverride none     //允许覆盖
	Require all granted        //设置访问目录权限
 </Directory>
 <VirtualHost 192.168.10.100:80>
	DocumentRoot /www/100       //指定当前主机访问网站根目录
	ServerName 192.168.10.100    //指定访问网站名称
	ErrorLog "/var/log/httpd/dummy-host2.example.com-error_log"    //错误日志,做实验可不写
	CustomLog "/var/log/httpd/dummy-host2.example.com-access_log" common   //访问日志,注意后面必须用common标记,做实验可不写

 </VirtualHost>
<VirtualHost 192.168.10.200:80>
        DocumentRoot /www/200
        ServerName 192.168.10.200
        ErrorLog "/var/log/httpd/dummy-host2.example.com-error_log"
        CustomLog "/var/log/httpd/dummy-host2.example.com-access_log" common
</VirtualHost>
  1. 重启服务
[root@localhost ~]# systemctl restart httpd

三、基于端口访问不同网站

建立一个网站,文件存放在/www/80,内容显示为the port is 80;
建立一个网站,文件存放在/www/10000,内容显示为the port is 10000;

vim /etc/httpd/conf.d/vhosts.conf
</VirtualHost>
<VirtualHost *:80>
        DocumentRoot /www/200
        ServerName 192.168.10.200
        ErrorLog "/var/log/httpd/dummy-host2.example.com-error_log"
        CustomLog "/var/log/httpd/dummy-host2.example.com-access_log" common
</VirtualHost>

LISTEN 10000    //增加监听端口10000
<VirtualHost *:10000>
        DocumentRoot /www/200
        ServerName 192.168.10.200
        ErrorLog "/var/log/httpd/dummy-host2.example.com-error_log"
        CustomLog "/var/log/httpd/dummy-host2.example.com-access_log" common
</VirtualHost>

四、基于端口访问Web服务器

需要用到域名解析。即域名---->地址

1.解决浏览器如何通过域名查询URL对应的IP(对应服务器的地址)

1、浏览器缓存:浏览器会按照一定的频率缓存DNS记录。
2、操作系统缓存:如果浏览器缓存中找不到需要的DNS记录,那就去操作系统中的hosts文件找。hosts是一个没有扩展名的系统文件,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库",当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。
windows下的hosts文件路径:
C:\Windows\System32\drivers\etc\hostsLinux下的hosts文件路径:/etc/hosts
Linux 下的hosts文件路径:
/etc/hosts

3、路由缓存:路由器也有DNS缓存。
4、ISP的DNS服务器:ISP是互联网服务提供商(Internet Service
Provider)的简称,ISP有专门的DNS服务器应对DNS查询请求。
5、根服务器:ISP的DNS服务器还找不到的话,它就会向根服务器发出请求,进行递归查询(DNS服务器先问根域名服务器.com域名服务器的IP地址,然后再问.com域名服务器,依次类推)。
此处使用第二种

2. 要求

1、新建一个网站,域名为www.haha.com,同时可通过www1.haha.com访问,文件存放在/www/haha目录,网页内容为This is www.haha.com.
2、新建一个网站,域名为www.xixi.com,文件存放在/www/xixi

配置方法如下:

[root@localhost ~]# cat /etc/httpd/conf.d/vhosts.conf 
//此处为IP解析、端口解析、域名解析全部配置
<Directory /www>
        AllowOverride none 
        Require all granted 
</Directory>
<VirtualHost 192.168.10.100:10000>
        DocumentRoot /www/100
        ServerName 192.168.10.100
        ErrorLog "/var/log/httpd/dummy-host2.example.com-error_log"
        CustomLog "/var/log/httpd/dummy-host2.example.com-access_log" common
</VirtualHost>
LISTEN 10000
<VirtualHost 192.168.10.200:10000>
        DocumentRoot /www/200
        ServerName 192.168.10.200
        ErrorLog "/var/log/httpd/dummy-host2.example.com-error_log"
        CustomLog "/var/log/httpd/dummy-host2.example.com-access_log" common
</VirtualHost>
<VirtualHost 192.168.10.200:80>
        DocumentRoot /www/haha
        ServerName www.haha.com
        ServerAlias www1.haha.com
        ErrorLog "/var/log/httpd/dummy-host2.example.com-error_log"
        CustomLog "/var/log/httpd/dummy-host2.example.com-access_log" common
</VirtualHost>
<VirtualHost 192.168.10.100:80>
        DocumentRoot /www/xixi
        ServerName www.xixi.com
        ErrorLog "/var/log/httpd/dummy-host2.example.com-error_log"
        CustomLog "/var/log/httpd/dummy-host2.example.com-access_log" common
</VirtualHost>

Vim /etc/hosts    //自定义IP所对应的域名
192.168.10.100  www.xixi.com
192.168.10.200 www.haha.com

Windows下和Linux下自定义IP对应的域名的文件路径

  • windows下的hosts文件路径:
    C:\Windows\System32\drivers\etc\hostsLinux下的hosts文件路径:/etc/hosts

  • Linux 下的hosts文件路径:
    /etc/hosts

*五、验证

使用同网段的其他用户访问web-IP或者域名
或者使用curl 域名/IP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值