Linux Apache服务详解——虚拟网站主机功能实战

简介: Linux Apache服务详解——虚拟网站主机功能实战

今天我们继续给大家介绍Linux相关内容,本文主要内容是Apache服务虚拟网站主机功能实战。

一、虚拟主机功能简介
Apache服务默认支持虚拟主机功能,所谓虚拟主机,就是Apache将一台服务器的多个目录根据访问客户端访问目标的不同,起到不同访问输出的效果。虚拟主机可以使用基于域名的虚拟主机,基于端口的虚拟主机和基于IP的虚拟主机三种,这三种虚拟主机在实现上都是根据客户端对不同的域名、IP或者端口的访问,给予不同的响应,以此实现虚拟出多个网站站点的效果。
今天,我们来实现这三种方式的虚拟主机功能。

二、网卡添加
首先,为了实现基于IP的虚拟主机功能,我们为虚拟机再添加一张网卡,添加网卡后,可以使用ifconfig命令来查看网卡名称。但是,在添加网卡后,系统却并不会生成网卡的配置文件,此时我们复制之前网卡的配置文件,进行简单修改后成为新网卡的配置文件。执行命令:

cp -a /etc/sysconfig/network-scripts/ifcfg-ens32 /etc/sysconfig/network-scripts/ifcfg-ens34
1
可以复制原有的网卡文件接下来我们进入ifcfg-ens34网卡下,修改IP地址为我们想要的IP地址,删除UUID(因为与之前网卡的UUID重合),修改DEVICE和NAME为ens34。修改完成后的配置文件如下所示:

之后,我们重启网卡,启动成功后,执行命令ifconfig,效果如下:

这样,我们的网卡就已经配置成功了!
其他主机尝试访问这两个IP地址,发现访问正常,如下所示:

三、基于IP的虚拟网站主机功能
接下来,我们就可以实现基于IP的虚拟网站主机功能了,想要实现基于IP的虚拟网站主机,我们需要修改Apache服务的主配置文件,在全局模式下,添加如下两个模块:


DocumentRoot /var/www/virtual/web_a

AllowOverride None
Require all granted


DocumentRoot /var/www/virtual/web_b

AllowOverride None
Require all granted


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
其中中的IP地址就是两个网卡的地址,DocumentRoot和Directory模块中的目录分别为两个虚拟主机的根目录,修改完成后配置文件如下所示:

接下来,我们需要创建这两个目录,并写入不同的内容,以方便我们验证效果,相应命令如下:

mkdir -p /var/www/virtual/web_a
mkdir -p /var/www/virtual/web_b
echo "This is a's web" > /var/www/virtual/web_a
echo "This is b's web" > /avr/www/virtual/web_b
1
2
3
4
完成上述所有操作后,重启Apache服务,并尝试访问这两个IP,发现结果如下:

可以得出,这两个IP虽然对应着同一台设备,但是反馈结果是不同的,基于IP的虚拟主机实验成功!

四、基于域名的虚拟网站主机功能
接下来,我们来实现基于域名的虚拟网站主机功能,因为是在本地测试,因此我们来通过修改本地hosts文件的方式,来模拟域名解析功能,在公网环境下使用时,其原理是完全相同的。
对于windows主机来说,hosts文件位置如下:
C:\Windows\System32\drivers\etc
打开hosts文件(使用记事本打开,记得要使用管理员权限的打开),在hosts文件的最下面加入IP地址和域名的对应关系,先写IP,后写域名,完成后结果如下所示:

我们尝试访问该域名,结果如下所示:

这样,我们本地域名已经配置成功!接下来,我们需要对网站的配置文件进行相应配置。实现基于域名的虚拟主机功能其实与基于IP的虚拟主机功能配置差不多,在上个实验的同样的位置,插入以下内容:


DocumentRoot /var/www/virtual/web_a
ServerName www.pzz.com

AllowOverride None
Require all granted


DocumentRoot /var/www/virtual/web_b
ServerName www.zzp.com

AllowOverride None
Require all granted

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
完成上述配置后,重启Apache服务,我们使用不同的域名访问站点,结果如下:

显然,不同的域名虽然对应着相同的IP地址,但是由于访问域名不同,最终访问的结果也不同,实验成功!

五、基于端口的虚拟主机功能实现
最后,我们来配置基于端口的虚拟主机功能实现,站点配置文件的修改与基于IP的修改很类似,唯一的区别之处在于VirtualHost模块中一个是IP地址不同,一个是IP地址相同,但是后面的域名不同,插入内容如下:


DocumentRoot /var/www/virtual/web_a

AllowOverride None
Require all granted


DocumentRoot /var/www/virtual/web_b

AllowOverride None
Require all granted


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
此外,Apache服务还必须打开监听我们设置的81和82端口,因此还必须在全局配置下插入如下内容:

Listen 81
Listen 82
1
2
上述配置完成后,我们尝试使用端口来访问服务器,结果如下:

显然,根据不同的端口,得到的返回结果也是不同的,由此可见,我们的实验成功!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_40228200/article/details/121482314

目录
相关文章
|
16天前
|
安全 Unix Linux
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
25000多字详细讲解,深度剖析权限管理核心。从基础权限到复杂的特殊权限,逐一拆解,无论你是零基础小白还是经验丰富的运维人员,都能在这里找到提升技能的关键知识,全面掌握 Linux 权限管理。还不快来看看?
|
5月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
194 3
|
5月前
|
Linux 网络安全 Apache
CentOS 7.2配置Apache服务httpd(上)
CentOS 7.2配置Apache服务httpd(上)
408 1
|
3月前
|
负载均衡 Ubuntu 应用服务中间件
nginx修改网站默认根目录及发布(linux、centos、ubuntu)openEuler软件源repo站点
通过合理配置 Nginx,我们可以高效地管理和发布软件源,为用户提供稳定可靠的服务。
247 13
|
5月前
|
存储 分布式计算 druid
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
121 3
|
5月前
|
Linux PHP Apache
CentOS 7.2配置Apache服务httpd(下)
CentOS 7.2配置Apache服务httpd(下)
75 1
|
6月前
|
存储 数据挖掘 Linux
服务器数据恢复—Linux操作系统网站服务器数据恢复案例
服务器数据恢复环境: 一台linux操作系统服务器上跑了几十个网站,服务器上只有一块SATA硬盘。 服务器故障: 服务器突然宕机,尝试再次启动失败。将硬盘拆下检测,发现存在坏扇区
|
5月前
|
存储 Linux
服务器数据恢复—Linux操作系统网站服务器数据恢复案例
服务器数据恢复环境: 一台linux操作系统网站服务器,该服务器上部署了几十个网站,使用一块SATA硬盘。 服务器故障&原因: 服务器在工作过程中突然宕机。管理员尝试重新启动服务器失败,于是将服务器上的硬盘拆下检测,发现很多坏扇区。联系当地的一家数据恢复公司处理,但是没有成功。
|
6月前
|
监控 安全 Linux
如何利用Kali Linux进行网站渗透测试:最常用工具详解
如何利用Kali Linux进行网站渗透测试:最常用工具详解
234 6
|
6月前
|
Linux Python
linux之部署python环境&创建虚拟环境
linux之部署python环境&创建虚拟环境