Regex 组合Nginx位置块。

Regex 组合Nginx位置块。,regex,nginx,Regex,Nginx,我在nginx conf中有以下配置 location /request1 { proxy_pass http://hostname:port/request1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /request2 { proxy_pass http://hostname:

我在nginx conf中有以下配置

location /request1 {
          proxy_pass  http://hostname:port/request1;
          proxy_set_header Host      $host;
          proxy_set_header X-Real-IP $remote_addr;
}

location /request2 {
          proxy_pass  http://hostname:port/request2;
          proxy_set_header Host      $host;
          proxy_set_header X-Real-IP $remote_addr;
}

location /request3 {
          proxy_pass  http://hostname:port/request3;
          proxy_set_header Host      $host;
          proxy_set_header X-Real-IP $remote_addr;
}
我想把它们合并成一个配置,就像

location ~ /(request1|request2|request3)/ {
          proxy_pass  http://hostname:port/$1;
          proxy_set_header Host      $host;
          proxy_set_header X-Real-IP $remote_addr;
}
我搞不懂语法。有人能帮我吗

回答我的问题:

以下是我的作品:

location ~ ^/(request1|request2|request3) {
    proxy_pass  http://hostname:port;
    proxy_set_header Host      $host;
    proxy_set_header X-Real-IP $remote_addr;
}

请从匹配项中删除最后一个
/
。另外,添加一个
^
,以确保从uri的开头开始匹配

location ~ ^/(request1|request2|request3) {

实际上,您的配置应该在这种状态下正常工作,您遇到了什么问题?尾部的
/
就是这样,例如
/request11
之类的内容无法匹配。