我正在尝试将我的 vhost 配置组织到几个文件中,以便可以查看基本文件/“模板”,其余文件只需包含它们并根据需要覆盖设置。这里描述了 nginx 中的继承是如何工作的。我想知道的是:(如何)是否可以不覆盖整个设置块/上下文(例如server
),而只覆盖一个选项(例如server_name
)。
例子:
我已经定义了一个server
块
server {
listen 80;
# server_name is not defined
if ($host ~ ^(?<project>.+)\.(?<area>.+)\.loc$) {
set $folder "$area/$project";
}
...
}
并希望在另一个地方设置/重写设置 server_name。它应该看起来像
server.server_name foo.bar.loc;
不允许使用点语法。但也许有类似的东西?
答案1
它不应该这样工作。您无法覆盖,因为 nginx 配置是声明性的。我建议您将通用配置放入某个文件中,创建具有不同参数的多个服务器块,并对该文件使用 include 指令。