在Apache中配置虚拟主机
2008-11-06 23:56
274 查看
假设本机IP是172.23.29.60,在Apache的配置文件 httpd.conf 中加入以下代码:
NameVirtualHost 172.23.29.60
<VirtualHost 172.23.29.60>
ServerName www.test.com
DocumentRoot F:/test
</VirtualHost>
<VirtualHost 172.23.29.60>
ServerName www.vis.com
DocumentRoot F:/vis
</VirtualHost>
配置完成,那么实际上它是如何运作的呢?
如果你使用的是Windows系统,则系统中有一个hosts文件,浏览器在做“域名解析”的时候会先到这里看一下,如果有IP解析,就不用再向 DNS(Domain Name Server 域名服务器)提出解析申请,这样就会节约大量的时间。
使用记事本打开位于 C:/WINDOWS/system32/drivers/etc 目录下的hosts文件(如果是Win98系统,则位于 C:/WINDOWS 目录下),会看到上面是一些以"#"开头的注释文字,最后一行是:
127.0.0.1 localhost
另起一行,并输入
172.23.29.60 www.test.com
保存文件。
此时使用浏览器访问 www.test.com ,浏览器首先看一下hosts文件,发现里面已经配置了该域名所对应的IP,就转而访问本机的IP地址。又由于本机设置了Apache在80端口监听,所以Apache会受理这一HTTP请求。
Apache接受到请求之后,发现来自的域名地址是 www.test.com ,符合其中一个VirtualHost的ServerName条件,则其根目录(DocumentRoot)就定位到 F:/test 下,这时如果该目录下有一个index.htm文件,就会自动转向访问该文件,浏览器中出现的也就是index.htm的内容。
如果你是一个虚拟主机服务提供商,那么让用户把域名解析到你的服务器IP,分配给他相应的服务器目录空间,然后配置好你的httpd.conf,就OK了
http.conf
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/usr/local/apache/conf/vhostmap.conf
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1
在
vhostmap.conf文件中加入如下内容
xxx.com.cn /net/vhost/php/www
bbs.xxx.com.cn /net/vhost/php/www/bbs
对应的
/net/vhost/php目录下面建立
www目录就是你的网站 www.xxx.com.cn 的根
如果再建立一个 www2目录 那就是网站 www2.xxx.com.cn
或者如果你的是linux 系统的话 也可以在实现了泛域名解析之后建立一个文件软连接
(windows下面目前还没有找到建立类似的软连接的方法)
NameVirtualHost 172.23.29.60
<VirtualHost 172.23.29.60>
ServerName www.test.com
DocumentRoot F:/test
</VirtualHost>
<VirtualHost 172.23.29.60>
ServerName www.vis.com
DocumentRoot F:/vis
</VirtualHost>
配置完成,那么实际上它是如何运作的呢?
如果你使用的是Windows系统,则系统中有一个hosts文件,浏览器在做“域名解析”的时候会先到这里看一下,如果有IP解析,就不用再向 DNS(Domain Name Server 域名服务器)提出解析申请,这样就会节约大量的时间。
使用记事本打开位于 C:/WINDOWS/system32/drivers/etc 目录下的hosts文件(如果是Win98系统,则位于 C:/WINDOWS 目录下),会看到上面是一些以"#"开头的注释文字,最后一行是:
127.0.0.1 localhost
另起一行,并输入
172.23.29.60 www.test.com
保存文件。
此时使用浏览器访问 www.test.com ,浏览器首先看一下hosts文件,发现里面已经配置了该域名所对应的IP,就转而访问本机的IP地址。又由于本机设置了Apache在80端口监听,所以Apache会受理这一HTTP请求。
Apache接受到请求之后,发现来自的域名地址是 www.test.com ,符合其中一个VirtualHost的ServerName条件,则其根目录(DocumentRoot)就定位到 F:/test 下,这时如果该目录下有一个index.htm文件,就会自动转向访问该文件,浏览器中出现的也就是index.htm的内容。
如果你是一个虚拟主机服务提供商,那么让用户把域名解析到你的服务器IP,分配给他相应的服务器目录空间,然后配置好你的httpd.conf,就OK了
http.conf
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/usr/local/apache/conf/vhostmap.conf
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1
在
vhostmap.conf文件中加入如下内容
xxx.com.cn /net/vhost/php/www
bbs.xxx.com.cn /net/vhost/php/www/bbs
对应的
/net/vhost/php目录下面建立
www目录就是你的网站 www.xxx.com.cn 的根
如果再建立一个 www2目录 那就是网站 www2.xxx.com.cn
或者如果你的是linux 系统的话 也可以在实现了泛域名解析之后建立一个文件软连接
(windows下面目前还没有找到建立类似的软连接的方法)
相关文章推荐
- 配置apache虚拟主机,实现在一台服务器上运行多个网站
- CentOS中增加apache虚拟主机的配置
- FreeBsd6.1 apache虚拟主机配置实战
- 在 Apache2.2.23 上通过 httpd.conf 配置虚拟主机 已更新
- apache配置虚拟主机及虚拟目录
- Apache配置虚拟主机后,不能访问localhost的问题
- Apache2.2.x+tomcat单IP多域名多站点的虚拟主机配置详解(win2003环境)
- Apache2.2.x+tomcat单IP多域名多站点的虚拟主机配置详解(win2003环境)
- 配置apache虚拟主机vhost
- Apache基于IP的虚拟主机本地配置
- Apache 虚拟主机 VirtualHost 配置
- Apache虚拟主机的配置多地址,多网站,域名访问
- Apache虚拟主机和虚拟目录的配置
- apache虚拟主机配置一例
- Apache配置虚拟主机httpd-vhosts.conf
- Apache配置本地测试多网站域名与虚拟主机
- windows下apache虚拟主机的配置
- linux环境apache多端口配置虚拟主机的方法
- apache配置多个虚拟主机 重定向localhost 尽可能减少对主配置文件的修改
- apache配置虚拟主机