有不少平时喜欢钻研的童鞋会发现,为何有时候本身访问某XXse网站时,老是更新IP地址,内容却与之前同样。这个时候就要了解虚拟主机的概念了。了解这个概念,可以帮助运维同窗,更内涵的隐藏本身的主机,或者让一台apache支持多个网站的共同运营。
参考资料:
1 http://httpd.apache.org/docs/2.2/
2《Apache cookbook》
虚拟主机寻址方式
IP地址方式:每台虚拟主机都有其惟一的IP地址
名称寻址方式:多台虚拟主机会以不一样的名称在同一IP地址上运行
以名称寻址的虚拟主机
使用NameVirtualHost *指令以及<VirtualHost>区块
- ServerName 127.0.0.1
- NameVirtualHost * #表示所设定的主机可在全部的地址上运行
- <VirtualHost *>
- ServerName test1.name #默认的第一个主机会接收未列出虚拟主机的请求
- DocumentRoot "C:/Apache2.2/htdocs/test1"
- </VirutalHost>
- <VirtualHost *>
- ServerName test2.name
- DocumentRoot "C:/Apache2.2/htdocs/test2"
- </VirutalHost>
指定一台名称寻址的主机位默认服务器,并在查找不到主机时,转向默认网页
- <VirtualHost *>
- ServerName default
- DocumentRoot /www/htdocs
- ErrorDocument 404 /site.html
- </VirutualHost>
对特定主机设置多个名称
- ServerAlias www.cu.com chinaunix.cu
以IP寻址的虚拟主机
能够在系统上设定多个IP,而后各自支持某个网站
- ServerName 127.0.0.1
- <VirtualHost 10.0.0.1>
- ServerName test.name
- DocumentRoot "C:/Apache2.2/htdocs/test1"
- </VirtualHost>
- <VirtualHost 10.0.0.2>
- ServerName test2.name
- DocumentRoot "C:/Apache2.2/htdocs/test2"
- </VirutalHost>
创建IP寻址的默认虚拟主机
- <VirtualHost _default_>
- DocumentRoot /www/htdocs
- </VirtualHost>
- #_default_ 创建虚拟主机,处理全部未设定虚拟主机“地址:端口号”的请求
- #_default_ 可与端口号同时使用 _default_:443 会接受443端口号的全部未设定虚拟主机的请求
端口号寻址的虚拟主机
- Listen 8080
- <VirtualHost 10.0.0.1:8080>
- DocumentRoot "C:/Apache2.2/htdocs/test_port8080"
- </VirtualHost>
- Listen 8081
- <VirtualHost 10.0.0.1:8081>
- DocumentRoot "C:/Apache2.2/htdocs/test2_port8081"
- </VirtualHost>
这种用法不常见,由于请求时,很麻烦,须要填入端口号:好比 www.test.com:8080/
在多个地址上显示相同的网页内容
- NameVirtualHost 192.168.1.1
- NameVirtualHost 170.1.2.3
- <VirtualHost 192.168.1.1 170.1.2.3>
- DocumentRoot "C:/Apache2.2/htdocs/test"
- </VirtualHost>