Apache虚拟主机-解惑篇

1250阅读 0评论2013-05-28 exhalo
分类:系统运维

    有很多平时喜欢钻研的童鞋会发现,为什么有时候自己访问某XXse网站时,总是更新IP地址,内容却与以前一样。这个时候就要了解虚拟主机的概念了。了解这个概念,能够帮助运维同学,更内涵的隐藏自己的主机,或者让一台apache支持多个网站的共同运营。

参考资料:

1
2《Apache cookbook

虚拟主机寻址方式


IP地址方式:每台虚拟主机都有其唯一的IP地址
名称寻址方式:多台虚拟主机会以不同的名称在同一IP地址上运行



 以名称寻址的虚拟主机
使用NameVirtualHost *指令以及区块

  1. ServerName 127.0.0.1
  2. NameVirtualHost * #表示所设定的主机可在所有的地址上运行
  3. <VirtualHost *>
  4.     ServerName test1.name #默认的第一个主机会接收未列出虚拟主机的请求
  5.     DocumentRoot "C:/Apache2.2/htdocs/test1"
  6. </VirutalHost>
  7. <VirtualHost *>
  8.     ServerName test2.name
  9.     DocumentRoot "C:/Apache2.2/htdocs/test2"
  10. </VirutalHost>

指定一台名称寻址的主机位默认服务器,并在查找不到主机时,转向默认网页

  1. <VirtualHost *>
  2.     ServerName default
  3.     DocumentRoot /www/htdocs
  4.     ErrorDocument 404 /site.html
  5. </VirutualHost>

对特定主机设置多个名称

  1. ServerAlias www.cu.com chinaunix.cu


以IP寻址的虚拟主机

可以在系统上设定多个IP,然后各自支持某个网站

  1. ServerName 127.0.0.1
  2. <VirtualHost 10.0.0.1>
  3.     ServerName test.name
  4.     DocumentRoot "C:/Apache2.2/htdocs/test1"
  5. </VirtualHost>
  6. <VirtualHost 10.0.0.2>
  7.     ServerName test2.name
  8.     DocumentRoot "C:/Apache2.2/htdocs/test2"
  9. </VirutalHost>

建立IP寻址的默认虚拟主机

  1. <VirtualHost _default_>
  2.     DocumentRoot /www/htdocs
  3. </VirtualHost>
  4. #_default_ 建立虚拟主机,处理所有未设定虚拟主机“地址:端口号”的请求
  5. #_default_ 可与端口号同时使用 _default_:443 会接受443端口号的所有未设定虚拟主机的请求


端口号寻址的虚拟主机

  1. Listen 8080
  2. <VirtualHost 10.0.0.1:8080>
  3.      DocumentRoot "C:/Apache2.2/htdocs/test_port8080"
  4. </VirtualHost>
  5. Listen 8081
  6. <VirtualHost 10.0.0.1:8081>
  7.      DocumentRoot "C:/Apache2.2/htdocs/test2_port8081"
  8. </VirtualHost>

这种用法不常见,因为请求时,很麻烦,需要填入端口号:比如


在多个地址上显示相同的网页内容

  1. NameVirtualHost 192.168.1.1
  2. NameVirtualHost 170.1.2.3
  3. <VirtualHost 192.168.1.1 170.1.2.3>
  4.     DocumentRoot "C:/Apache2.2/htdocs/test"
  5. </VirtualHost>
上一篇:Apache 性能调优-参考篇
下一篇:Mysql导入数据时-data truncated for column..