动态配置海量虚拟主机驻留,用于巨量数目的WEB站点。随apache提供的标准模块+mod_vhost_aliases实现动态配置的主机。作用是在检查完进来的URL后为这些目录生成实际路径。

    实现基于名字的动态虚拟主机指令:

    VirtualDocumentRoot
    指定模块如何从URL请求那里为动态虚拟主机构造DocumentRoot路径。

    VirtualScriptAlias
    和ScriptAlias一样,从URL请求那里构造一个包含CGI脚本的目录路径


    %N
    服务器的第N部分,如果服务器的全名是 vhost1.sohu.com,那么%1解析成vhost1,%2 解析成sohu,以此


   类推。


    %N+
    服务器名称的地N部分和其后所有其余部分。如果服务器全名为vhost1.sohu.com,那么%2+解析为


    sohu.com。


    %-N
    字符串倒数第N部分。如果服务器全名为vhost1.sohu.com,那么%-1解析成com。%-2解析成sohu


    %p
    动态虚拟主机的TCP端口号


    还可以从服务器名字中抽取的每一部分可以使用分类符%N.M继续对子部分进一步划分,其中N是主部分,M是子部分。例如:



%1=vhost1
%2=sohu
%3=com


    可以划分子部分:



%1.1=v
%1.2=h
%1.3=o
%2.1=s
%2.2=o


    例如:

    在httpd.conf文件中:
    UseCanonicalName off
    VirtualDocumentRoot /home/httpd/%1/%p


    要实现输入http://www.263.net:443
    需要在/home/httpd目录中建立www(%1)/443
    然后在/home/httpd/%1/443/目录中建立网页文件, 在DNS中设置解析访问即可。


    例2:


    将例子一中的VirtualDocumentRoot定义的内容删除。
    然后再添加:
    VirtualHostDocumentRoot /home/httpd/%1/%2


    要求:
    实现动态虚拟主机
    www.abc.com
    www.xyz.com


    #mkdir /home/httpd/www
    #mkdir /home/httpd/www/abc
    #mkdir /home/httpd/www/xyz
    将网页文件放入/home/httpd/www/abc和/home/httpd/www/xyz即可在DNS中设置解析

Comments are closed.

Post Navigation