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

Phi*_*ppN 5 nginx

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

当前状态如下

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

etc .....
Run Code Online (Sandbox Code Playgroud)

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

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

location ~ (/loc1/|/some/other/location/|/yet/anotherone) {
    common rules;
}
Run Code Online (Sandbox Code Playgroud)

在我的情况下,这将导致一条巨大的线路,维护起来非常难看。

有没有另一种更清洁的方法来做到这一点?

非常感谢。

Ale*_*Ten 4

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

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

common rules;

location /a {
}

location /b/whatever {
}
Run Code Online (Sandbox Code Playgroud)

他们将被继承。