您所在的位置:读书频道 > 操作系统 > Linux > 18.4.7 虚拟主机的设置

18.4.7 虚拟主机的设置

2007-12-05 15:09 鸟哥 机械工业出版社华章公司 字号:T | T
一键收藏,随时查看,分享好友!

《鸟哥的Linux私房菜——服务器架设篇》(第二版)第18章的主要介绍的是WWW服务器。本文主要介绍的是虚拟主机的设置。

AD:

18.4.7  虚拟主机的设置

接下来要谈的是“主机代管”,即一个称为虚拟主机的东西。它可以让您的一台Apache看起来像有多个“主站首页”。

1. 什么是虚拟主机(Virtual Host)

所谓的虚拟主机,就是“让您的一台主机上面,有好多个‘主网页’存在,也就是说,硬件实际上只有一台主机,但是从网站网址上看,则似乎有多台主机存在的样子”。举个例子来说,鸟哥提供的网站有主网站以及讨论区,链接如下。

· 主网站:http://linux.vbird.org/
· 讨论区:http://phorum.vbird.org/

单击进入这两个链接会发现,它们是不同的资料内容,不过,如果用dig之类的软件来查验IP的话,会发现这两个网址都指向同一个IP。怎么会这样?没错,这就是虚拟主机的主要功能。它可以让您的多个主机名称对应到不同的主网页目录(DocumentRoot参数),所以看起来像有多台实际主机的样子。

2. 架设的大前提

架设虚拟主机需要什么前提条件呢?以鸟哥的网站为例,必须有多个主机名称对应到同一个IP去,所以说,您必须先拥有多个主机名称。要如何拥有多个主机名称呢?有以下两种方法:

· 向ISP申请多个合法的主机名称,而不自己架设DNS。
· 自行设置经过合法授权的DNS主机来设置自己所需要的主机名称。

相关的DNS申请与设置技巧在前几章已经谈过了,这里不再赘述。

3. 架设范例练习

在DNS章节里不是设置了多个主机名称吗?那些主机名称就是为了要在这里实际应用的。需要注意的是,每个主机名称都必须对应到某个主网页目录,下面是鸟哥的一个简单范例,如表18-1所示。

表18-1  主机名称对应主网页目录

主机名称

对应的主目录

linux.vbird.tsai

/var/www/html

www.vbird.tsai

/var/www/www

phorum.vbird.tsai

/var/www/phorum

 

接下来开始设置了。建议将虚拟主机的设置建立在一个新文件/etc/httpd/conf.d/*.conf中,因为如此一来您的虚拟主机设置文件就可以进行移出,修改的时候也不会影响到原有的httpd.conf的资料。而因为httpd.conf内有个Include的参数将/etc/httpd/conf.d/*.conf的文件都读入配置文件中,所以设置上就变得很轻松,备份与升级的时候也比较容易处理。

1. 先建立所需要的目录
[root@linux ~]# mkdir /var/www/www
[root@linux ~]# mkdir /var/www/phorum
[root@linux ~]# echo "www.vbird.tsai" > /var/www/www/index.html
[root@linux ~]# echo "phorum.vbird.tsai" > /var/www/phorum/index.html
# 原有的首页(/var/www/html)就不更改了。另建两个不同的首页内容,可供测试用

2. 开始编辑配置文件,这里鸟哥用额外的文件来设置
[root@linux ~]# vi /etc/httpd/conf.d/virtual.conf
# 下面这一行在规定“本机任何接口的端口80所指定的虚拟主机” 
NameVirtualHost *:80

# 先针对两个多出来的可浏览目录进行权限方面的规范

    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all


    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all


# 针对三台主机的DocumentRoot进行设置

    ServerName    linux.vbird.tsai
    DocumentRoot  /var/www/html


    ServerName    www.vbird.tsai
    DocumentRoot  /var/www/www
    CustomLog     /var/log/httpd/www.access_log combined
    #不同的主页可以指定不同的日志文件信息,这样比较好debug与分析


    ServerName    phorum.vbird.tsai
    DocumentRoot  /var/www/phorum


[root@linux ~]# apachectl restart

需要注意以下几点:

• 在虚拟主机的设置上还有很多可用的功能,不过,最低的限度有ServerName及DocumentRoot即可。

• 使用了虚拟主机后,原本的主机名称(linux.vbird.tsai)也要同时写入虚拟主机的对应中,否则这个主机名称可能会不知道被丢到哪里。

• 在www.vbird.tsai主机中多了一个CustomLog,表示任何www.vbird.tsai要求数据的记录都会被改写到/var/log/httpd/www.access_log而不是默认的/var/log/httpd/access_log中。但这个新增的日志文件必须加入logrotate的管理中,否则日志文件会非常大。

接下来,只要客户端的浏览器可以找到这三个主机名称并联机到正确的IP去,这个Apache就可以同时提供三个网站的网址了。

4. 虚拟主机常见用途

虚拟主机为什么会这么热门呢?因为它可以进行下面的任务。

(1)主机代管

如果您有一台很快速的计算机且网络带宽又大的话,那么您可以用这个虚拟主机的技术来“招揽生意”。因为毕竟不是所有的公司都有维护服务器的能力,如果您能够提供合理的流量、亲和的数据传输接口、稳定的服务,并且给予类似MySQL数据库的支持,那么当然有可能进行“主机代管”的业务。

(2)服务器数据备援系统

可以在两个地方放置两台主机,主机内的网页数据是一模一样的(这个可以使用rsync来实现),那么您可以利用Apache的虚拟主机功能配合DNS的IP指向设置,让某一台主机挂点时,另外一台主机立刻接管WWW的要求。让您的WWW服务器不会有任何断线的危险(注:当A服务器挂点时,赶紧设置DNS,让原本A的IP指定给B,则任何向该IP要求的WWW将会被导向B,B有A的备份数据以及虚拟主机设置)。

(3)将自己的资料分门别类

如果您有几个不同的数据类型时,也可以利用虚拟主机将各种数据分门别类。例如将博客指向blog.vbird.tsai,将讨论区指向phorum.vbird.tsai,将教学数据指向teach.vbird.tsai等,这样网址就很容易让客户端了解了。

【责任编辑:董书 TEL:(010)68476606】

回书目   上一节   下一节

分享到:

  1. Linux服务器配置全程实录
  2. 揭秘--优秀PPT这样制作

热点职位

更多>>

热点专题

更多>>

读书

J2EE应用开发(WebLogic+JBuilder)(第二版)
本书介绍如何将最流行的J2EE应用服务器WebLogic Server和最好的Java集成开发工具JBuilder结合起来开发J2EE应用,主要内容包括:W

51CTO旗下网站

领先的IT技术网站 51CTO 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 51CTO学院 区块链第一聚合媒体 zhijiapro