注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

@fc_lamp

关注Web应用解决方案MySql/PHP/Python一盏名为"飞川"的灯~

 
 
 

日志

 
 

如何通过 apache VirtualHost 来设置多个虚拟主机  

2011-08-03 11:22:00|  分类: Web技术-Servers |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

如何通过 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地址(和可能的端口)来使主机接受请求。

0  开启vhosts

在http.conf配置文件中,找到这一行,去掉前面的#号

#LoadModule vhost_alias_module modules/mod_vhost_alias.so

去掉下面Include conf/extra/httpd-vhosts.conf这一行前面的#号,表示vhost的配置信息从该配置文件读取

# Virtual hosts
Include conf/extra/httpd-vhosts.conf


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了

  评论这张
 
阅读(461)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017