软件指南针:专注于软件传播与分享

Apache虚拟主机配置规则详解

来源:原创 618次浏览 0条评论
☞ 本文主要介绍软件Apache HTTP Server的相关内容:Apache虚拟主机配置规则详解

   其下列版本/分支可以参考本文:

  • 全部版本/分支

想要为Apache HTTP Server(以下简称Apache)配置虚拟主机,就需要先了解虚拟主机的配置规则。

在Apache中,我们可以将与虚拟主机相关的配置内容直接写入Apache安装目录/conf/httpd.conf配置文件中,不过,为了便于后期的统一管理,Apache建议大家将相关配置内容写入Apache安装目录/conf/extra/httpd-vhosts.conf文件中,并在httpd.conf文件包含进(Include)该文件即可。

基于域名的虚拟主机配置规则

1、NameVirtualHost指令

想要配置基于域名的虚拟主机,则必须使用NameVirtualHost指令,该指令用于指定对于当前服务器的哪些IP地址和端口可以接受虚拟主机的相关访问请求,而且这些IP地址和端口必须包含在服务器监听的地址和端口之中。

如果你希望用到服务器上所有的IP地址,你可以使用指令:

NameVirtualHost *
如果你的Apache监听了多个端口(例如:常规的80端口和SSL的443端口),那么你必须在NameVirtualHost指令中指定一个端口,例如:
NameVirtualHost *:80
2、VirtualHost配置段

接着,我们可以使用VirtualHost配置段来添加一个虚拟主机,如果有多个虚拟主机,我们可以添加多个这样的配置段。在VirtualHost配置段中,我们可以使用配置指令来对该虚拟主机进行设置,除了诸如创建进程等少数特殊的指令外,几乎所有的指令都可以出现在VirtualHost配置段中。如果没有设置某些指令,则该虚拟主机将采用主服务器范围内相同的全局指令作为默认设置。当然,VirtualHost配置段至少应该包含ServerNameDocumentRoot这两个配置指令,用以指定虚拟主机的域名和站点文档目录的路径。

<VirtualHost *:80>
    ServerName a.com
    DocumentRoot "D:/web/a"
</VirtualHost>
由于一些旧版本的浏览器不支持HTTP协议中的Host头字段,则该请求将交给第一个符合请求所对应的IP地址的虚拟主机来处理。
举例说明:比如,一个Apache服务器上有三个虚拟主机a.com、b.com、c.com(按配置顺序排列),而服务器只有一个IP地址111.222.33.44,则三个域名都映射到该IP地址。如果某个用户使用旧版本的浏览器访问b.com,由于该浏览器不会发送Host头字段,b.com的映射IP地址为111.222.33.44,那么该请求将会交给第一个符合该IP地址要求的虚拟主机a.com来处理。

基于IP地址的虚拟主机配置规则

与基于域名的虚拟主机相比,基于IP地址的虚拟主机不需要NameVirtualHost指令,诸如VirtualHost配置段等相关则与基于域名的虚拟主机相似。

作者:软件指南针(http://www.softown.cn),转载请保留出处!

用户评论

使用指南 故障排除 0 返回顶部