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

目录
相关文章
|
12月前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
703 3
|
Linux 网络安全 Apache
CentOS 7.2配置Apache服务httpd(上)
CentOS 7.2配置Apache服务httpd(上)
1099 1
|
JavaScript Linux 网络安全
Termux安卓终端美化与开发实战:从下载到插件优化,小白也能玩转Linux
Termux是一款安卓平台上的开源终端模拟器,支持apt包管理、SSH连接及Python/Node.js/C++开发环境搭建,被誉为“手机上的Linux系统”。其特点包括零ROOT权限、跨平台开发和强大扩展性。本文详细介绍其安装准备、基础与高级环境配置、必备插件推荐、常见问题解决方法以及延伸学习资源,帮助用户充分利用Termux进行开发与学习。适用于Android 7+设备,原创内容转载请注明来源。
6036 77
|
关系型数据库 MySQL 应用服务中间件
Linux 手动安装快速部署 LNMP 环境实战
本文详细记录了在阿里云ECS上手动搭建LNMP环境的过程,系统选用Ubuntu 24.04。主要内容包括:1) 使用`apt`安装Nginx和MySQL,并更新软件源;2) 编译安装PHP 8.4.5,配置PHP-FPM及环境路径;3) 配置MySQL root用户密码;4) 调整Nginx支持PHP解析并测试整体环境。通过此过程,重现手动配置服务器的细节,帮助熟悉各组件的安装与协同工作。
1088 23
|
安全 Unix Linux
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
25000多字详细讲解,深度剖析权限管理核心。从基础权限到复杂的特殊权限,逐一拆解,无论你是零基础小白还是经验丰富的运维人员,都能在这里找到提升技能的关键知识,全面掌握 Linux 权限管理。还不快来看看?
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
|
负载均衡 Ubuntu 应用服务中间件
nginx修改网站默认根目录及发布(linux、centos、ubuntu)openEuler软件源repo站点
通过合理配置 Nginx,我们可以高效地管理和发布软件源,为用户提供稳定可靠的服务。
2417 13
|
存储 分布式计算 druid
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
390 3
|
Linux PHP Apache
CentOS 7.2配置Apache服务httpd(下)
CentOS 7.2配置Apache服务httpd(下)
366 1