如何使用 Nginx 将相同的规则应用到多个位置?

如何使用 Nginx 将相同的规则应用到多个位置?

在一个项目中,我有非常大的 nginx 配置,其中有很多冗余行。

目前的状态如下

location ~ /loc1/ {
    common rules;
}
location ~ /some/other/location/ {
    common rules;
}
location ~ /yet/anotherone {
    common rules;
}

etc .....

我想要的是一种分离的方式,其中有一个通用规则模板和一个位置列表。

在其他相关问题中,人们使用正则表达式来匹配多个位置,如下所示

location ~ (/loc1/|/some/other/location/|/yet/anotherone) {
    common rules;
}

对我来说,这会导致出现一条很长的线,维护起来非常不方便。

还有其他更清洁的方法来做到这一点吗?

非常感谢。

答案1

第一个选项是放入common rules;文件和include该文件。

另一个取决于规则的具体内容。在许多情况下,你可以将它们移至上层,例如:

common rules;

location /a {
}

location /b/whatever {
}

并会被继承。

相关内容