nginx rewrite 与 proxy_pass 结合使用
问题描述
有这么一个需求,我需要将一个请求重写到另一个地址,然后再将这个地址代理到另一个服务。这个需求在实际开发中是很常见的,比如我们需要将一个旧的接口地址重写到新的接口地址,然后再将新的接口地址代理到后端服务。
如:请求 http://example.com/v1
重写到 http://example.com/v2
然后再将 http://example.com/v2
代理到后端服务 http://127.0.0.1:8080/v2
解决方案
在 Nginx 中,我们可以使用 rewrite
指令和 proxy_pass
指令来实现这个需求。
1 | server { |
详细的参数说明:
$1
:匹配的第一个括号中的内容,即请求的路径。break
:表示匹配成功一次后就停止匹配,不再继续匹配其他规则。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.