Apache实现动态虚拟主机

经常在开发中为Apache web server添加虚拟主机  方便多个项目的 同时运营,但是每次增加新的项目时都得重新配置增加VirtualHost:虚拟主机    部分,时间久了VirtualHost虚拟主机 部分也多了,看着头疼。

NameVirtualHost 111.22.33.44
<VirtualHost 111.22.33.44>
ServerName www.customer-1.com
DocumentRoot /www/hosts/www.customer-1.com/docs
ScriptAlias /cgi-bin/ /www/hosts/www.customer-1.com/cgi-bin
</VirtualHost>
<VirtualHost 111.22.33.44>
ServerName www.customer-2.com
DocumentRoot /www/hosts/www.customer-2.com/docs
ScriptAlias /cgi-bin/ /www/hosts/www.customer-2.com/cgi-bin
</VirtualHost>
# blah blah blah
<VirtualHost 111.22.33.44>
ServerName www.customer-N.com
DocumentRoot /www/hosts/www.customer-N.com/docs
ScriptAlias /cgi-bin/ /www/hosts/www.customer-N.com/cgi-bin
</VirtualHost>

如果使用动态虚拟主机,则方便多了,不用每次都得配置,仅仅只需要增加一个文件夹,当然如果是在本地的话可能还需要修改“hosts”文件增加一条信息,

例如:

aaarticlea/png;base64,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" alt="" />

下面介绍如何简单配置Apache 动态虚拟主机:

1.打开mod_vhost_alias模块

需要修改Apache的httpd.conf的文件。

2.Apache 使用虚拟主机名字(Server Name)来生成自我参考(self-referential) 的 URLs 等等信息。

UseCanonicalName Off 时, 虚拟主机名字(server name)取自请求中的 Host: 头的内容。

UseCanonicalName DNS 时,则通过 DNS 反解析虚拟主机的IP 地址得到主机名字。

3.设置虚拟主机的目录。

VirtualDocumentRoot /www/hosts/%0/docs

如访问 www.aa.com则自动对应 /www/hosts/www.aa.com/docs 文件。

 

配置完成后,如例:根据要访问的域名自动对应目录

aaarticlea/png;base64,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" alt="" />

友情提示下:如果修改了路径则需要加Directory,不同不同版本下的写法不太一致,参考原始配置。

例如:

<Directory "F:\www">  
   Options -Indexes +FollowSymlinks  
    AllowOverride All  
    Require all granted  
</Directory>

参考官方文档:

1.Dynamically Configured Mass Virtual Hosting

2.mod_vhost_alias模块

3.Apache Core Features

上一篇:python获取文件所在目录


下一篇:PHP--根据手机号-淘宝平台获取归属地运营商信息