Apache虚拟主机的配置可分为三种:基于端口、基于ip和基于域名的虚拟主机。下面我们分别做个简单介绍。
我们以Windows平台下的httpd-2.2.21-win32-x86-no_ssl.msi 版本为例。
一、基于端口的虚拟主机设置
1、修改监听端口
打开Apache配置文件httpd.conf,添加要使用的监听端口
如:
Listen 80 Listen 81 Listen 82
以上设置的含义为监听80、81、82这几个端口(注意不能和其它软件的端口有冲突)。
2、更改虚拟主机设置:
打开Apache配置文件httpd.conf,查找 Include conf/extra/httpd-vhosts.conf,将前面的#号去掉。
修改虚拟主机配置文件 Apache/Conf/extra/httpd-vhosts.conf,清除或注释掉原先所有内容,放置下面内容
<VirtualHost *:80> DocumentRoot "d:/WAMP/WWW" </VirtualHost> <VirtualHost *:81> DocumentRoot "d:/WAMP/test1" </VirtualHost> <VirtualHost *:82> DocumentRoot "d:/WAMP/test2" </VirtualHost>
3、测试:
打开浏览器分别输入 http://localhost、http://localhost:81、http://localhost:82 可访问不同网站
二、基于IP的虚拟主机设置
基于 IP 的虚拟主机是指为每个 Web 站点配置不同的 IP 地址。通常用于有多块物理网卡,或者配置了多个虚拟 IP 的 Web 服务器。
一个网卡绑定多个IP地址,打开“控制面板”->“网络连接”->“本地连接”->“点右键属性”->从“常规”选项卡中找到“Internet 协议(TCP/IP)“->"点击属性”->点下面的“高级”按钮,在高级中的“IP设置-IP地址” 栏下点“添加”按钮,输入你想绑定的IP地址即可。如果之前本地连接IP地址是 192.168.1.2,那么继续添加 192.168.1.3、192.168.1.4、192.168.1.5 等等。用这些IP区分不同的虚拟主机。
我们这里不一一绑定了,因为所有127开头的都会指向本机,如 127.0.0.1
1、指定监听端口
打开Apache配置文件httpd.conf,指定监听端口
如:
Listen 80
以上设置的含义为监听80端口
2、更改虚拟主机设置:
打开Apache配置文件httpd.conf,查找 Include conf/extra/httpd-vhosts.conf,将前面的#号去掉。
修改虚拟主机配置文件 Apache/Conf/extra/httpd-vhosts.conf,清除或注释掉原先所有内容,放置下面内容
<VirtualHost 127.0.0.1:80> DocumentRoot "d:/WAMP/WWW" ServerName 127.0.0.1:80 </VirtualHost> <VirtualHost 127.0.0.2:80> DocumentRoot "d:/WAMP/test1" ServerName 127.0.0.2:80 </VirtualHost> <VirtualHost 127.0.0.3:80> DocumentRoot "d:/WAMP/test2" ServerName 127.0.0.3:80 </VirtualHost>
3、测试:
打开浏览器分别输入 http://127.0.0.1、http://127.0.0.2、http://127.0.0.3 可访问不同网站
三、基于域名的虚拟主机设置
1、修改hosts文件
以Windows 2003为例,在C:\WINDOWS\system32\drivers\etc 下有个hosts文件。
这个hosts的作用就是将一些常用的网址域名与其对应的IP地址建立关联,当用户在浏览器中输入一个网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析。
打开hosts文件,一般已有“127.0.0.1 localhost” ,添加你要增加的域名,如下:
127.0.0.1 www.test.com 127.0.0.1 www.test1.com 127.0.0.1 www.test2.com
2、指定监听端口
打开Apache配置文件httpd.conf,指定监听端口
如:
Listen 80
以上设置的含义为监听80端口
3、更改虚拟主机设置:
打开Apache配置文件httpd.conf,查找 Include conf/extra/httpd-vhosts.conf,将前面的#号去掉。
修改虚拟主机配置文件 Apache/Conf/extra/httpd-vhosts.conf,清除或注释掉原先所有内容,放置下面内容
NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot "d:/WAMP/WWW" ServerName www.test.com </VirtualHost> <VirtualHost *:80> DocumentRoot "d:/WAMP/WWW/test1" ServerName www.test1.com </VirtualHost> <VirtualHost *:80> DocumentRoot "d:/WAMP/WWW/test2" ServerName www.test2.com </VirtualHost>
4、测试:
打开浏览器分别输入 http://www.test.com、http://www.test1.com、http://www.test2.com 可访问不同网站。
四 虚拟主机配置文件参数说明
<VirtualHost *:*> ServerAdmin # 管理员的E-mail地址 DocumentRoot # 虚拟主机的根目录 ServerName # 虚拟主机的名称端口 ErrorLog # 虚拟主机的错误日志路径 Customlog # 虚拟主机的访问日志路径 </VirtualHost>