nginx 中的函数

nginx 中的函数

我对 nginx 还很陌生,我有一个 nginx conf 脚本,其中包含以下模板,示例1示例2有相同的内容,我想把这些内容放在一个函数中(与编程中的方法相同的概念),并在里面传递参数以减少重复,可以这样做吗?我搜索了很长时间,但没有看到做类似事情的例子。

server {
   server_name test.com

  location ^~ /example1/ {
      proxy_pass http://<some-ip>/example1/;
      proxy_set_header blah

  }

  location ^~ /example2/ {
      proxy_pass http://<some-ip>/example2/;
      proxy_set_header blah

  }

}

答案1

正如评论中提到的,nginx 中没有任何功能。对于这些,您需要一个配置管理系统。

但是,要组合这两个块,您可以使用正则表达式捕获:

location ~ ^/(example1|example2/)$ {
    proxy_pass http://some.ip/$1;
    ... rest of configuration directives ...
}

可以扩展正则表达式来匹配这些路径下的文件,例如:

location ~ ^/(example1|example2/)(.+)$ {
    proxy_pass http://some.ip/$1$2;
    ... rest of configuration directives ...
}

匹配 URL 中这些路径后面的所有文件并将它们添加到proxy_pass

相关内容