如何从 nginx proxy_pass 中的 URL 中删除子路径?

如何从 nginx proxy_pass 中的 URL 中删除子路径?

这是我的反向代理服务器的配置:

server {
  listen 8085 ssl;
  server_name  localhost;
  location / {
    proxy_pass http://192.168.85.56:8080;
  }
}

对于传入路径,例如:https://localhost:8085/path1/1/path2/,我想删除/1/,因此生成的路径将是https://localhost:8085/path1/path2/

一个限制是path1可以更改为任何字符串。

此外,匹配任意数字而不仅仅是匹配1也是一个有效的解决方案。

如何才能做到这一点?

编辑:我的问题非常类似这个,除了我有一个path1可以变化的字符串。

答案1

rewrite...break在块内使用location

例如:

location / {
    rewrite ^(.*)/[0-9]+/(.*)$ $1/$2 break;
    proxy_pass http://192.168.85.56:8080;
}

这个文件了解详情。

相关内容