Nginx

发布时间 2023-05-16 21:00:44作者: Josen_Earth

如果你想在 Nginx 中创建一个反向代理,在代理请求时同时移除匹配的路径,可以使用 proxy_pass 指令和正则表达式来实现。

以下是一个示例配置,假设你想将 http://example.com/app/ 下的所有请求代理到 http://backend:8080/,但是从代理请求中移除 /app/

location /app/ {
    rewrite ^/app/(.*)/1 break;
    proxy_pass http://backend:8080/;
}

这个配置将使用 `rewrite` 指令将匹配的路径替换为 `/`,然后使用 `proxy_pass` 指令代理请求到 `http://backend:8080/`。

效果是当用户访问 http://example.com/app/foo,Nginx 将向后端服务器发送一个请求 http://backend:8080/foo。

注意,使用正则表达式的 `rewrite` 指令必须用 `^` 开头和 `$` 结尾表示字符串的开始和结束。`break` 参数告诉 Nginx 结束处理当前请求,并使用新的 URI 重新执 行 location 匹配新的 URI。

希望对你有帮助!