Apache配置VirtualHost设置多个虚拟主机

如何通过Apache VirtualHost 来设置多个虚拟主机(在本地通过Apache VirtualHost 来设置虚拟主机)(多个域名指向同一个IP)

在开始之前,我们看看这个资料:

Apache 虚拟主机说明:
虚拟主机和分为两种:
1: 基与(ip)的虚拟主机
基于IP的虚拟主机使用链接的IP地址来决定相应的虚拟主机。
你就需要为每个主机设定一个独立的IP地址。

2:基与(域名)的虚拟主机
根据客户端提交的HTTP头中的关于主机名的部分决定的。
很多虚拟主机可以享用同一个IP地址。
具体使用:
你只需要配置你的DNS服务器将每个主机名映射到正确的IP地址。
也就是添加(主机记录)。
然后配置你httpd 另其辨识不同的主机名就可以了。
基于域名的虚拟主机也可以缓解IP地址不足的问题。
基于域名的虚拟主机使用的模块。(core)
相关配置语法:

DocumentRoot
NameVirtualHost
ServerAlias
ServerName
ServerPath
VirtualHost

为了使用基于域名的虚拟主机,你必须指定服务器IP地址(和可能的端口)来使主机接受请求。
1、以用NameVirtualHost指令来进行配置。
如果服务器上所有的IP地址都会用到,你可以用*作为NameVirtualHost的参数。
请注意,在NameVirtualHost指令中指明了IP地址并不会使服务器侦听那个IP地址。
这里设定的IP地址必须对应服务器上的一个网络接口。

2、下一步就是为你建立的每个主机设定<VirtualHost>配置块。

  • <VirtualHost>的参数与NameVirtualHost指令的参数是一样的 (比如说,一个IP地址,或是*代表的所有地址)。
  • 每个<VirtualHost>定义块中,至少都会有一个ServerName指令来指定伺服哪个主机和一个DocumentRoot指令来说明这个主机的内容存在于文件系统的什么地方。

以此来区别不同的虚拟主机。
什么情况不能用:
SSL protocol 决定了基于域名的虚拟主机无法成为SSL安全服务器。
操作系统和网络设备实现的带宽管理技术无法在主机共享一个IP的情况下区别它们。

以上信息来至:http://bbs.51cto.com/thread-23274-1-1.html

看了以上资料后,我们再来实现一下:首先这里由于我们只是在本地测试,所以我们的IP与域名的映射做法与提供商的不一样。

如果你的是WIN 操作系统,可这样做:

1 首先打开HOSTS文件:(你可以在C:\WINDOWS\system32\drivers\etc这个目录下找到它)

进行这样编辑:

127.0.0.1          www.one.com
127.0.0.1          www.two.com

这样做的原因在于:Windows系统会先检查自己的Hosts文件中是否有这个网络域名映射关系。如果有,则调用这个IP地址映射,如果没有,再向已知的DNS服务器提出域名解析。也就是说hosts文件实际上可以看成是一个本机的DNS系统,它可以负责把域名解释成IP地址,它的优先权比DNS服务器要高。

让具体你可以参考这篇文章《域名访问提示,域名纠错系统等问题如何解决》

2 在打开apache的config文件:一般情况下你可以在apache的安装目录(conf/)里找到 httpd.conf文件进行设置,也可能是在 conf/extra/httpd-vhosts.conf 文件里

然后进行这样编辑:

这里默认是80端口

NameVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1>
  DocumentRoot "这里是你的网站根目录"
  ServerName www.one.com
</VirtualHost>
<VirtualHost 127.0.0.1>
  DocumentRoot "这里是你的网站根目录"
  ServerName  www.two.com
</VirtualHost>

然后:重启apache 就OK了


» 本文链接:https://blog.java-zone.org/archives/11.html
» 转载请注明来源:Java地带  » 《Apache配置VirtualHost设置多个虚拟主机》

» 本文章为Java地带整理创作,欢迎转载!转载请注明本文地址,谢谢!
» 部分内容收集整理自网络,如有侵权请联系我删除!

» 订阅本站:https://blog.java-zone.org/feed/

标签: Apache, VirtualHost

添加新评论