apache之虚拟主机

上一篇 / 下一篇  2009-02-11 20:02:03 / 个人分类:apache学习

以前看apache配置文件时发现有一个vhosts_a.conf,打开来后是这样

<VirtualHost *:80>
    ServerNamewww.***.com
    ServerAlias ***.com
    DocumentRoot /web/www/yahoo
    DirectoryIndex home.jsp index.htm index.html default.htm index.jsp
    ErrorLog logs/www.***.com-error_log
    CustomLog "|/usr/sbin/cronolog /var/log/httpd/***-access_%y%m%d.log" vhost env=!omit-style
    ErrorDocument 500 "/error.html"
    ErrorDocument 503 "/error.html"
    ErrorDocument 404 "/error2.html"

</VirtualHost>

以前听说过虚拟主机,但是不明白其中的意思。原来虚拟主机就是在一个机器上运行多个网站,上面的就是配置www.***.com这个网站的,当然vhosts_a.conf是一个独立的文件,它会放在 apache_home/conf.d(其实任何一个目录下都可以),这个文件在httpd.conf中被引用。

当然上面那一段也可以直接写在httpd.conf,只不过写在单独文件看起来清楚一些罢了。

虚拟主机有两种方式:1. 基于域名 2.基于ip

如何分辨呢,配置文件(httpd.conf或者vhosts_a.conf均可)中有一个指令:NameVirtualHost ,这个指令如果存在并且设置了,说明是基于域名的,反之则是基于IP的,一般用基于域这种方式,因为IP是有限的。

VirtualHost 后面的是机器域名或IP,尽量用IP,因为域名的话要经过DNS服务器解析,多一个步骤多一个不稳定,万一DNS不工作了或者不稳定,将会导致apache启动不了或者请求无结果。

ServerName是网站的名称,如www.yahoo.com,www.google.com

ServerAlias是网站别名,如你输入yahoo.com也和输入www.yahoo.com一样

DocumentRoot是网页文件路径,这个必不可少。例如访问www.yahoo.com/index.html,实际访问的是/web/www/yahoo目录下的index.html.

*:80 这里说明一下为什么要用星号,因为有的机器IP是动态分配的,不确定IP,用*号就不用管它IP具体是多少。

 


 


TAG: apache学习

 

评分:0

我来说两句

日历

« 2024-03-14  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 24758
  • 日志数: 28
  • 图片数: 1
  • 文件数: 1
  • 建立时间: 2008-09-01
  • 更新时间: 2021-05-23

RSS订阅

Open Toolbar