在 Apache 中的几个虚拟主机之间共享设置

在 Apache 中的几个虚拟主机之间共享设置

我的 apache 配置中有许多虚拟主机,每个虚拟主机都有相当多的设置。问题是大多数虚拟服务器都具有相同的设置。因此配置文件非常庞大,充满了相同的虚拟主机,它们之间只有指令不同ServerName。要更改或添加设置,我需要浏览所有这些虚拟主机。
是否可以以某种方式在虚拟主机之间共享设置,但其中的一些仍然有自己的设置?
我希望动态虚拟主机会是一个很好的解决方案,但据我所知,它不适合我的问题,因为没有办法为某些虚拟主机设置特定设置。此外,我不希望我的虚拟主机是动态的,因为我有固定数量的虚拟主机。 ServerAlias指令也不是一个解决方案,因为我需要知道用户来自哪个 url。

答案1

我遇到了与您类似的情况,我的解决方案是编写一个(Perl)脚本来为我生成 vhost 配置。

我有一个配置文件,其中列出了每个服务器不同的一些设置(例如 ServerName、SSL 证书等),然后 Perl 脚本将唯一设置与通用设置相结合,并在 /etc/httpd/conf.d 中写出许多 conf 文件。

然后我将它们全部包含在主配置中,如下所示:

Include conf.d/*.conf

每次我添加新的 vhost 时,我只需将数据添加到 Perl 脚本配置文件中,运行该脚本,然后重新加载 Apache。

相关内容