参数化 Apache 虚拟主机

参数化 Apache 虚拟主机

我有一个以这种方式制作的虚拟主机:

<VirtualHost *:80>
        Servername www.website.com
        DocumentRoot /path/to/application-1.2.1/client/app/
        ErrorLog /var/log/apache2/logs/application.log
</VirtualHost>

每次部署新版本时应用程序的名称都会application改变,例如下一个 DocumentRoot 将是:

DocumentRoot /path/to/application-1.2.2/client/app/

是否可以使用通配符或类似内容创建虚拟主机:

DocumentRoot /path/to/application-*/client/app/

这样,每次部署新版本的应用程序时,我就不必更改虚拟主机?

答案1

不,那里不能有通配符。

相反,使用符号链接:

ln -s /path/to/application-1.2.2/client/app /path/to/application/client/app

并读取配置

<VirtualHost *:80>
        Servername www.website.com
        DocumentRoot /path/to/application/client/app/
        ErrorLog /var/log/apache2/logs/application.log
</VirtualHost>

这样做的额外好处是您可以保留旧版本,以便在需要时快速回滚。

根据您的主要配置,您可能需要添加

    <Directory /path/to/>
        Options +FollowSymlinks
    </Directory>

到您的配置中。

相关内容