2007-05-17

大容量虚拟主机的动态配置

来源: 本站收集整理 作者:佚名 评论 0 条
 

# 在返回请求的文件名的路径中包含进服务器名字: server name
VirtualDocumentRoot /www/hosts/%0/docs
VirtualScriptAlias /www/hosts/%0/cgi-bin

将 UseCanonicalName Off 的配置改为 UseCanonicalName DNS 即可实现基于 IP 地址的虚拟主机。而在文件路径中所要插入的服务器名字(server name) 则通过虚拟主机的 IP 地址解析而得。

一个实际的个人主页主机系统

这里对上面的系统作了一点调整,便可作为 ISP 的个人主页服务器。 我们使用了略微复杂的方法,从服务器名字(Server Name)中提取子字符串, 并插入到文件路径中。在这个例子中,www.user.isp.com 的文档将在 /home/user/ 中定位。并对所有虚拟主机使用单个 cgi-bin 目录。

# 所有之前的预备事项和上面一样,然后

# 在文件路径中包含服务器名字(server name)
VirtualDocumentRoot /www/hosts/%2/docs

# 单个 cgi-bin 目录
ScriptAlias /cgi-bin/ /www/std-cgi/

更复杂的关于 VirtualDocumentRoot 的设置,可以查阅 mod_vhost_alias 文档。

在同一个服务器上架设多个主机的虚拟系统

更复杂的设置,应该使用 Apache 的 <VirtualHost> 指令来治理各种虚拟主机配置的作用域。例如,你可以用一个 IP 地址来给个人主页客户使用, 同时用下面的配置提供给商业客户使用。自然的,这两者通过运用 <VirtualHost>结合到一起。

UseCanonicalName Off

LogFormat "%V %h %l %u %t "%r" %s %b" vcommon

<Directory /www/commercial>

Options FollowSymLinks
AllowOverride All

</Directory>

<Directory /www/homepages>

Options FollowSymLinks
AllowOverride None

</Directory>

<VirtualHost 111.22.33.44>

ServerName www.commercial.isp.com

CustomLog logs/access_log.commercial vcommon

VirtualDocumentRoot /www/commercial/%0/docs
VirtualScriptAlias /www/commercial/%0/cgi-bin

</VirtualHost>

<VirtualHost 111.22.33.45>

ServerName www.homepages.isp.com

CustomLog logs/access_log.homepages vcommon

VirtualDocumentRoot /www/homepages/%0/docs
ScriptAlias /cgi-bin/ /www/std-cgi/

</VirtualHost>

更为有效的基于 IP 地址的虚拟主机

在 第一个例子 中说过,转为基于 IP 地址的虚拟主机设置很轻易做到。但不幸的是,那种做法并不高效,因为这样会在每次处理请求时,需要查询 DNS 。 通过在文件系统中包含IP 地址的做法可以避免这样的问题。这样一来, 免去了和服务器名字的关联,在日志记录中也一样可以用 IP 来分离不同日志。 Apache 将不会为了确定服务器名字(server name)而去做 DNS 查询。


共2页: 上一页 [1] 2 下一页

(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:优化Apache服务器的重负荷  
下一篇:用Linux搭建全自动虚拟主机
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号