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

目录
相关文章
|
1月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
271 146
|
2月前
|
缓存 安全 Linux
六、Linux核心服务与包管理
在没有网络的情况下,使用系统安装光盘是获取RPM包的常用方法。场景二:配置本地文件镜像源 (使用系统安装光盘/ISO)(检查RPM包的GPG签名以保证安全) 或。YUM/DNF包管理工具 (yum/dnf)(此处可以放置您为本主题制作的思维导图)处理依赖问题的危险选项 (应极力避免)(覆盖文件、替换已安装包)。(list) 则是列出文件。(query file) 是。(假设系统安装光盘已挂载到。信息 (verbose)。(upgrade) 选项。(all) 已安装的包。(package) 选项
326 11
|
4月前
|
监控 Linux 开发者
理解Linux操作系统内核中物理设备驱动(phy driver)的功能。
综合来看,物理设备驱动在Linux系统中的作用是至关重要的,它通过与硬件设备的紧密配合,为上层应用提供稳定可靠的通信基础设施。开发一款优秀的物理设备驱动需要开发者具备深厚的硬件知识、熟练的编程技能以及对Linux内核架构的深入理解,以确保驱动程序能在不同的硬件平台和网络条件下都能提供最优的性能。
272 0
|
7月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
618 25
|
8月前
|
Linux iOS开发 MacOS
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
248 0
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
|
1月前
|
人工智能 数据处理 API
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
Apache Flink Agents 是由阿里云、Ververica、Confluent 与 LinkedIn 联合推出的开源子项目,旨在基于 Flink 构建可扩展、事件驱动的生产级 AI 智能体框架,实现数据与智能的实时融合。
328 6
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
286 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
|
3月前
|
SQL 人工智能 数据挖掘
Apache Flink:从实时数据分析到实时AI
Apache Flink 是实时数据处理领域的核心技术,历经十年发展,已从学术项目成长为实时计算的事实标准。它在现代数据架构中发挥着关键作用,支持实时数据分析、湖仓集成及实时 AI 应用。随着 Flink 2.0 的发布,其在流式湖仓、AI 驱动决策等方面展现出强大潜力,正推动企业迈向智能化、实时化的新阶段。
489 9
Apache Flink:从实时数据分析到实时AI
|
3月前
|
SQL 人工智能 API
Apache Flink 2.1.0: 面向实时 Data + AI 全面升级,开启智能流处理新纪元
Apache Flink 2.1.0 正式发布,标志着实时数据处理引擎向统一 Data + AI 平台迈进。新版本强化了实时 AI 能力,支持通过 Flink SQL 和 Table API 创建及调用 AI 模型,新增 Model DDL、ML_PREDICT 表值函数等功能,实现端到端的实时 AI 工作流。同时增强了 Flink SQL 的流处理能力,引入 Process Table Functions(PTFs)、Variant 数据类型,优化流式 Join 及状态管理,显著提升作业稳定性与资源利用率。
442 0
下一篇
oss云网关配置