Apache -- Virtual Hosts

简介:

所谓虚拟主机,就是指一台服务器作为多域名的Web服务器。ISP经常通过一台服务器为其客户提供Web服务。而客户通常希望主页以自己的名字出现,而不是在该ISP的名字后面,因为使用单独的域名和根网址可以看起来更正式一些。传统上,用户必须自己设立一台服务器才能达到拥有单独域名的目的,然而这需要维护一个单独的服务器。很多小单位缺乏足够的维护能力,更为合适的方式是租用别人维护的服务器。ISP也没有必要为一个机构提供一个单独的服务器,完全可以使用虚拟主机的能力,使服务器为多个域名提供Web服务,而且不同的服务互不干扰,对外就表现为多个不同的服务器。虚拟主机就是解决这种问题的方案,使客户的域名实际指向ISP的同一台服务器。


1.Apache支持虚拟主机的方式

Apache有两种支持虚拟主机的方式。一是为每一个虚拟主机设置单独的httpd进程,二是为所有的主机设置一个单独的httpd进程。


          为每一个虚拟机设置单独的httpd进程

在httpd.conf文件的第一部分Global Environment中的BindAddress命令或Listen命令就是用来指定虚拟主机的地址和端口的。

BindAddress命令用来指定单一的地址,可以使用域名或IP地址。该命令在httpd.conf文件中只能出现一次。

Listen命令可以让httpd进程监听多个地址或端口。反复使用Listen命令就能实现这个要求。


          为所有的主机设置一个单独的httpd进程

这是一个常用的方法。用户只要维护一个httpd.conf文件。在此文件的第三部分Virtual Host中,用<VirtualHost></VirtualHost>命令来为所有的虚拟主机进行配置。有多个虚拟主机就有多个<VirtualHost>段。在不同的虚拟主机的<VirtualHost>段中可以指定不同的ServerAdmin、 ServerName、DocumentRoot、ErrorLog和TransferLog。


2.虚拟主机的实现方式

虚拟主机有三种实现方式:以主机名称的方式虚拟、以IP的方式虚拟、以端口的方式虚拟。下面就举一个在httpd.conf的第三部分Virtual Host中实现上面提及的方式的例子。

以主机名称的方式虚拟

如果用户的一台服务器有多个域名,Virtual Host文件举例如下:

NameVirtualHost 210.12.195.6

<VirtualHost hacker.com.cn>

ServerAdmin admin@wonlu.com

DocumentRoot /var/www/html/hacker

ServerName hacker.com.cn

</VirtualHost>


<VirtualHost pcfrient.com.cn>

ServerAdmin admin@pcfrient.com.cn

DocumentRoot /var/www/html/pcfrient

Servername pcfrient.com.cn

</VirtualHost>


以IP的方式虚拟

注册域名是要花一笔费用的。解决方案是可以用IP的方式来虚拟。在Linux中可以为一个网卡捆绑两个IP地址。如服务器的地址是 210.12.195.6,现在有一个IP地址210.12.195.9没有使用。将210.12.195.9捆绑到服务器的网卡中,执行下列命令:

#ifconfig eth0:0 210.12.195.9

这样,服务器就有两个IP地址了。以IP的方式虚拟和以主机名称的方式虚拟类似,请看下面的例子:

NameVirtualHost 210.12.195.6

<VirtualHost 210.12.192.6>

ServerAdmin admin@wonlu.com

DocumentRoot /var/www/html/hacker

</VirtualHost>


<VirtualHost 210.12.192.9>

ServerAdmin admin@wonlu.com

DocumentRoot /var/www/html/pcfrient

</VirtualHost>

以IP的方式虚拟不用NameVirtualHost命令。



以主机名称和IP的方式虚拟

就是上面的两个方式的结合。看下面的例子:

NameVirtualHost 210.12.195.6

<VirtualHost hacker.con.cn>

ServerAdmin admin@wonlu.com

DocumentRoot /var/www/html/hacker

ServerName hacker.com.cn

</VirtualHost>

<VirtualHost 210.12.195.6>

ServerAdmin admin@wonlu.com

DocumentRoot /var/www/html/pcfrient

</VirtualHost>


以端口的方式虚拟

http默认的端口是80,如果用户要开设另一个端口443作为另一个虚拟主机,举例如下:

Listen 80

Listen 443

<VirtualHost 210.12.192.6:80>

ServerAdmin admin@wonlu.com

DocumentRoot /var/www/html/hacker

</VirtualHost>

<VirtualHost 210.12.195.6:443>

ServerAdmin admin@wonlu.com

DocumentRoot /var/www/html/pcfrient

</VirtualHost>


以不同的IP和端口的方式虚拟

该方式是以IP的方式虚拟和以端口的方式虚拟的结合。假设服务器捆绑了两个IP地址,210.12.192.6和210.12.195.9,后面的IP地址用端口443。举例如下:

Listen 210.12.192.6:80

Listen 210.12.195.9:443

<VirtualHost 210.12.192.6:80>

ServerAdmin admin@wonlu.com

DocumentRoot /var/www/html/hacker

</VirtualHost>

<VirtualHost 210.12.195.9:443>

ServerAdmin admin@wonlu.com

DocumentRoot /var/www/html/pcfrient

</VirtualHost>


     本文转自Tar0 51CTO博客,原文链接:http://blog.51cto.com/tar0cissp/1346535,如需转载请自行联系原作者




相关文章
|
Linux Apache 开发工具
Configure Apache Virtual Hosts - CentOS 7
Difficulty: 2Time: 15 minutes Want to host websites on your server? Using Apache? Great. This article will show you how to do exactly that using Apache’s “virtual hosts.
1693 0
|
12月前
|
人工智能 数据处理 API
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
Apache Flink Agents 是由阿里云、Ververica、Confluent 与 LinkedIn 联合推出的开源子项目,旨在基于 Flink 构建可扩展、事件驱动的生产级 AI 智能体框架,实现数据与智能的实时融合。
1689 6
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
815 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
|
SQL 人工智能 数据挖掘
Apache Flink:从实时数据分析到实时AI
Apache Flink 是实时数据处理领域的核心技术,历经十年发展,已从学术项目成长为实时计算的事实标准。它在现代数据架构中发挥着关键作用,支持实时数据分析、湖仓集成及实时 AI 应用。随着 Flink 2.0 的发布,其在流式湖仓、AI 驱动决策等方面展现出强大潜力,正推动企业迈向智能化、实时化的新阶段。
1374 9
Apache Flink:从实时数据分析到实时AI
|
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 及状态管理,显著提升作业稳定性与资源利用率。
1057 0
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
1414 33
The Past, Present and Future of Apache Flink
|
人工智能 运维 Java
Flink Agents:基于Apache Flink的事件驱动AI智能体框架
本文基于Apache Flink PMC成员宋辛童在Community Over Code Asia 2025的演讲,深入解析Flink Agents项目的技术背景、架构设计与应用场景。该项目聚焦事件驱动型AI智能体,结合Flink的实时处理能力,推动AI在工业场景中的工程化落地,涵盖智能运维、直播分析等典型应用,展现其在AI发展第四层次——智能体AI中的重要意义。
3749 27
Flink Agents:基于Apache Flink的事件驱动AI智能体框架
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
2001 13
Apache Flink 2.0-preview released

推荐镜像

更多