定义站点可用虚拟主机时的优先级

定义站点可用虚拟主机时的优先级

Linode 建议在 (在 ubuntu 上) 中在单独的文件中定义每个虚拟主机/etc/apache2/sites-available,然后使用 启用每个站点a2ensite。我来自一个 VPS,其中我的所有虚拟主机都定义在一个httpd.conf文件中,并尝试将其转换为推荐的格式。

我设置的一个东西是为主站点设置一个通配符子域,稍后会将其映射到用户空间。但是,我也有静态子域。我认为静态子域需要位于我的配置中的通配符之上,因此如果访问其中一个静态子域,apache 会使用正确的虚拟主机,而不是使用通配符。

如果这是真的,那么如果每个站点使用一个文件,如何定义优先级?或者我是否只需要坚持使用一个站点文件并将所有子域粘贴在与主虚拟主机相同的文件中?

答案1

除了更易于管理和更容易启用/禁用虚拟主机之外,你没有理由需要维护该结构(/etc/apache2/sites-available/conf_file)如果您希望将所有内容保存在同一个文件中,那么继续这样做。

答案2

Apache 按照字母数字排序顺序处理配置子目录的内容(正确的名称是本地排序序列,但是 Apache 不使用该术语)。

因此,请使用文件名来设置顺序。您可以为所有文件名添加前缀或后缀,也可以只为其中一些文件名添加前缀或后缀,您可以想出排序正确的名称,或者其他任何您喜欢的名称,只要它们排序正确即可。不过,我个人更喜欢使用前缀,因为这样可以非常清楚地了解您要做什么。

答案3

通过该文件结构,您可以保留文件/etc/apache2/sites-availablea2ensite只需链接这些文件即可/etc/apache2/sites-enabled

如果要设置优先级,则需要确保中的文件sites-enabled按照您的偏好排序。示例:

$ ls -l /etc/apache2/sites-enabled/
00default -> ../sites-available/default
01siteA.com -> ../sites-available/siteA.com
02siteB.com -> ../sites-available/siteB.com
99siteZ.com -> ../sites-available/siteZ.com

相关内容