NameVirtualHost的使用

NameVirtualHost的使用

如果某个ip:port 上只设置了一个虚拟主机,那么NameVirtualHost ip:port 可以不写,因为从这个ip:port的访问不需要做任何选择;如上例中192.168.1.197只对应于www.a.com,所以不用指定 NameVirtualHost

如果某个ip:port 上设置了多于一个虚拟主机,那么必须使用指令NameVirtualHost ip:port ,否则从该ip:port的访问只访问第一个该ip:port 的虚拟主机(因为它优先,apache启动时会提示的);如上例中192.168.1.196对应www.b.com 和www.c.com,指定NameVirtualHost为NameVirtualHost 192.168.1.196:80

如果使用了指令NameVirtualHost ip:port ,却没有为该ip:port定义任何虚拟主机,好像不会出现访问到错误的虚拟主机的问题(因为谁也不知道你想干什么,不过apache还是会提示你: [warn] NameVirtualHost ip:port has no VirtualHosts);

如果VirtualHost 指定的虚拟主机没有匹配一个NameVirtualHost 指令,那么该虚拟主机不会被用到(除非他是第一个虚拟主机),这相当于没有NameVirtualHost 指令,即:如果有多个虚拟主机,一定要有NameVirtualHost 指令

注意

1.NameVirtualHost 指定虚拟主机所使用的IP地址或域名,但是最好是IP地址。使用基于域名的虚拟主机时,NameVirtualHost是必要的指令。NameVirtualHost可以定义多个。

2.虚拟主机混用可以这样理解:一行NameVirtualHost指令定义的所有虚拟主机为一组;该组与一个基于IP的虚拟主机平级。即把一行NameVirtualHost定义的整个组看作是一个基于IP的虚拟主机。

3.虚拟主机指定的端口必须是Listen定义的。如果虚拟主机没有指定端口,则认为是80端口。

window下设置apache虚拟主机

apache设置个虚拟主机使域名可行有两种办法:1.个IP解析到不同虚拟主机 2.单个IP绑定域名分解到不同虚拟主机

我们一般都是第2种,域名绑定同一IP。

首先,修改hosts文件域名访问方式。添加域名指向

不同的windows版本位置不同,

Windows 3.1/95/98/ME:
c:\windows\hosts

Windows NT/2000/XP Pro:
c:\winnt\system32\drivers\etc\hosts or c:\windows\system32\drivers\etc\hosts

Windows XP Home:
c:\windows\system32\drivers\etc\hosts

Windows Vista:
C:\Windows\System32\Drivers\etc\hosts

打开hosts文件,一般已有 ‘127.0.0.1       localhost’ ,添加你要增加的域名,如 ‘127.0.0.1 sjolzy ’,左边是ip,右边是域名。这样子,在本地访问//sjolzy/ (不存在的域名) 就如同http://localhost 指向设定的网站目录

接着,在apache配置文件上,创建相对应的虚拟主机

打开 httpd.conf文件,添加如下


<VirtualHost *:80>
DocumentRoot "D:/www/sjolzy"
ServerName sjolzy
</VirtualHost>

这样子在浏览器直接输入//sjolzy 就能转到相应的虚拟主机上。

 

或者参考以下:

实现Apache虚拟主机方法一:
开启虚拟主机配置文件

httpd.conf进行设置

1.注释以下三行

#ServerAdmin
#ServerName
#DocumentRoot

2.去掉mod_proxy.so和mod_proxy_ajp.so的注释

3.#Virtual hosts

#Include conf/extra/httpd-vhosts.conf查找这行,把前面的#去掉)
/conf/extra/httpd-vhosts.conf

4.打开 /conf/extra/httpd-vhosts.conf

#192.168.1.24为本地Ip
NameVirtualHost 192.168.1.24:80 


# php项目

<VirtualHost 192.168.1.24:80>

<Directory "D:/phproot/phpmyadmin">

DirectoryIndex index.php

</Directory>

ServerAdmin baibiao @gmail.com

ServerName email.sinoepiboly.com

#ServerAlias email.sinoepiboly.com

DocumentRoot D:/phproot/phpmyadmin

</VirtualHost>

==================================================================

方法二:

二级域名主机开发环境设置说明
第一步 DNS解析实现

找到本机的host文件,一般在 C:\WINNT\system32\drivers\etc,在文件结尾添加:

127.0.0.1 localhost
127.0.0.1 www.com.cn
127.0.0.1 home.com.cn
127.0.0.1 mail.com.cn
127.0.0.1 music.com.cn
127.0.0.1 browseusers.com.cn
127.0.0.1 search.com.cn
127.0.0.1 invite.com.cn
127.0.0.1 rank.com.cn
127.0.0.1 blog.com.cn
127.0.0.1 favorites.com.cn
127.0.0.1 forum.com.cn
127.0.0.1 groups.com.cn
127.0.0.1 events.com.cn
127.0.0.1 classifieds.com.cn
127.0.0.1 signup.com.cn
192.168.6.153 i.com.cn
192.168.6.153 x.com.cn

其中
192.168.6.2 i.com.cn
192.168.6.2 x.com.cn
技术人员不作修改,是美工页面专用的

第二步:apache设置

打开httpd.conf,以music.com.cn为例,其他栏目似添加,在文件最后加入:

1. 保证
Listen 80

2. 打开注释
NameVirtualHost *:80

3. 在末尾添加
<VirtualHost *:80>
ServerAdmin x_cn@msn.com
DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs/espace/music"
ServerName music.com.cn
</VirtualHost>
<VirtualHost *:80>
ServerAdmin x_cn@msn.com
DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs/espace/blog"
ServerName blog.com.cn
</VirtualHost>

...

重启即可,Apache虚拟主机设置完成。