分割 nginx 配置文件中的长行

分割 nginx 配置文件中的长行

为了不将垃圾传递给后端,我对location指令有一个严格的正则表达式。它看起来像这样:

location ^~ "/(some|stuff|more|bar|etc(-testing)?)/[a-zA-Z0-9]+/...(more|restrict).ext {
    # other directives
}

我想在 80 个字符处折叠该行,有没有办法拆分配置?以下内容导致语法错误,但这正是我正在寻找的:

location ^~ "/(some|stuff|more|bar|etc(-testing)?)/[a-zA-Z0-9]+/"\
            "...(more|restrict).ext" {
# results in a literal newline (%0A) being accepted
location ^~ "/(some|stuff|more|bar|etc(-testing)?)/[a-zA-Z0-9]+/
...(more|restrict).ext" {

我在文档中找不到提示(http://wiki.nginx.org/ConfigNotation也不http://wiki.nginx.org/HttpCoreModule#location提到任何有关折叠线的事情)

答案1

我不认为你能做到这一点。

nginx 对所有空格一视同仁,因此即使您尝试这样拆分字符串,并且 nginx 可以按照您的预期方式解析它,您最终也会得到一个包含大量空格的正则表达式,我确信这不是您想要的。如果 nginx 无法解析它(这种情况更有可能发生),您只会得到一个语法错误。

您只需要忍受几行长代码,或者使用不太复杂的正则表达式。

相关内容