我试图在几个文件中组织我的虚拟主机配置,以便有一个视图基本文件/“模板”,其余的只是包含它们并根据需要覆盖设置。这里描述了 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;
点语法是不允许的。但也许有这样的事情?
它不应该那样工作。你不能覆盖,因为 nginx 配置是声明性的。我建议您将通用配置放入某个文件,创建多个具有不同参数的服务器块,并为该文件使用 include 指令。